DirectX9のプログラミングの勉強をしているのですが、フルスクリーンとウィンドウモードの切り替えがどうしてもうまくいきません。
ネットであちこち探し回っているうちにわからなくなってきたのですが、Resetメソッドを呼び出した後にCreateDevice関数を呼ばないといけないんですか?
DirectXで・・・
Re:DirectXで・・・
いまいち頭の中で整理できていない状態で質問してしまいました。すいません。
デバイスロスト時の復帰プログラムを改造(Init_PRESENT_PARAMETERSの追加)しただけです。
しかし、こっちのソースではエラーが出てしまいます。(復帰は成功)
LPDIRECT3D9 Dx3D_9; D3DPRESENT_PARAMETERS Dx3D_PP; LPDIRECT3DDEVICE9 Dx3D_9Dev; D3DDISPLAYMODE Dx3D_9Disp; //以上は初期化済み //while内・Clear,BeginSceneメソッド実行後 if(CheckKeyState(KEY_INPUT_W)==1) { //リソース開放処理(作ってないので無記述) //以下の関数でDx3D_PPに値を代入します。(ウィンドウ初期化時にも使用・FALSEはフルスクリーンフラグです) Init_PRESENT_PARAMETERS(Dx3D_PP,Window_size_X,Window_size_Y,FALSE,Dx3D_9Disp); while(Dx3D_9Dev->Reset(&Dx3D_PP)==D3DERR_DEVICELOST) { GetMessage(&msg,NULL,0,0); TranslateMessage(&msg); DispatchMessage(&msg); } if(FAILED(Dx3D_9->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING,&Dx3D_PP,&Dx3D_9Dev))) { MessageBox(NULL,"エラー","DirectX9Error",MB_ICONERROR); break; } //リソース作成処理(作ってないので無記述) }以上のコードでフルスクリーンとウィンドウの切り替え(上のコードではデバックのためウィンドウからフルスクリーンのみ)の動作を望んでいるのですが、CreateDeviceでエラーが出ます。
デバイスロスト時の復帰プログラムを改造(Init_PRESENT_PARAMETERSの追加)しただけです。
しかし、こっちのソースではエラーが出てしまいます。(復帰は成功)
