VC++で、ゲーム中にウィンドウをフルスクリーンとウィンドウモードの切り替えを行い
たいのですが、良く分かりません。
初期化の手順としては
ウィンドウモードの場合の→
・協調レベルの設定
・プライマリサーフェイスの作成
・バックサーフェイスの作成。
フルスクリーンの場合→
・協調レベルの設定
・現在のディスプレイモード取得
・使用したいディスプレイモード設定
・ディスプレイモード列挙
・ディスプレイモード設定
・プライマリサーフェイスの作成
・バックサーフェイスの作成
でやっているのですが上手くいかなくて…。
ご存知の方がいらしたら教えてください。宜しくお願いします。
DirectXを使っているのかいないのか、まずこの点を明確にてくだい。
協調レベルやサーフェイスという言葉から、使っていると思うのですが、
バージョンが明記されてないので、答えようがありません。
説明不足で申し訳ありませんでした。
DirectX7を使ってゲームを作成しています。
DirectX8以降でもゲームを作成したいと思っているので
出来れば参考になる本とかも教えてくださると助かります。
宜しくお願いします。
// 以下、DirectX9 でフルスクリーンにするコードです
// 重要なのは、Resetを呼び出す前にオブジェクトを破棄る点です
void Change(LPDIRECT3DDEVICE9 lpDevice, int nWidth, int nHeight, BOOL
bWindowMode)
{
D3DPRESENT_PARAMETERS param;
ZeroMemory(¶m, sizeof(param));
param.SwapEffect = D3DSWAPEFFECT_DISCARD;
param.Windowed = bWindowMode;
if (bWindowMode) {
param.BackBufferFormat = D3DFMT_UNKNOWN;
}
else {
param.BackBufferFormat = D3DFMT_X8R8G8B8;
param.BackBufferWidth = nWidth;
param.BackBufferHeight = nHeight;
}
lpDevice->TestCooperativeLevel();
// サーフェイスやスプライトなどを作っているならここに破棄するコードを書く
lpDevice->Reset(¶m);
// サーフェイスやスプライトなど作り直すコードを書く
}
// 呼び出すときには以下のように
GetClientRect(hWnd, &rect);
Change(lpDevice, rect.right, rect.buttom, FALSE);
// FALSEはフルスクリーンの意味
参考になる本・・・、分からないです
ごめんなさい