私はゲームを作ろうとしています。私はDirectX 9を使用しています。フルスクリーンモードに移行しようとすると問題が発生します。現在のすべてのパラメータを初期化する関数を作った。私がwindowed = false(つまりフルスクリーンをtrueに設定する)以外は、すべてが問題ありません。ここDirectX PresentパラメータWindowed = false not working
は私の存在のパラメータ変数である:ここではD3DPRESENT_PARAMETERS d3dpp;
はd3dpp変数のコードです。このコードのすべてではないにしても、ほとんどがチャールズ・ケリーのProgramming 2D Gamesという本から来ています。
void Graphics::initD3Dpp()
{
try {
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
if (fullscreen)
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
else
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = mainhwnd;
d3dpp.Windowed = (!fullscreen); //THIS LINE RIGHT HERE IS THE ISSUE
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
}
catch (...)
{
throw(GameError(gameErrorNS::FATAL_ERROR,
"Error initializing D3D presentation parameters"));
}
}
私は理由がわかりません.windowedは私のためには機能しません。もっと文脈が必要なのかどうか私に尋ねてください。
どのように正確に機能しませんか?あなたが見ているものと見たいものは何ですか? –
あなたが選んだ幅と高さはどれですか?サポートされているディスプレイモードであることを覚えておいてください。 –
私は私のダイレクトデバイスを作成するとき、それはnullポインタと私のプログラムがクラッシュするので、それは動作しません。フルスクリーンを使用しているときにフルスクリーンが表示されていないときは、DirectXデバイスが作成されます。 – lvl99knight