拡張モードであるモニターから別のモニターに移動したい単純な directX-9 テスト アプリがあります。
ウィンドウとデバイスはプライマリ モニターに作成され、シーンは正しく描画されますが、ウィンドウを 2 番目のモニターに移動するとフリーズします。エラーはなく、現在の呼び出しでさえ失敗しませんが、ウィンドウの更新はありません。ウィンドウをプライマリ モニターに戻すとすぐに、すべてが正常に戻ります。
これを機能させるために何が欠けているのか、誰かが私にヒントを与えることができますか?
1446 次
1 に答える
1
必ずアダプタモードを列挙してください。使用しているモードで、グラフィックカードに問題がある可能性があります。また、アダプタがサポートするフォーマットごとに、使用可能なモードの数に基づいた表示モードのリストがあります。これらのモードをループする簡単な例を次に示します。
D3DDISPLAYMODE mode;
UINT adapter = 0;
D3DFORMAT format = D3DFMT_R5G6B5;
LPDIRECT3D9 pD3D;
pD3D = Direct3DCreate9( D3D_SDK_VERSION );
if(!pD3D) return FALSE;
UINT availableModes = pD3D->GetAdapterModeCount(Adapter, Format);
if(!availableModes) return FALSE;
for(UINT i = 0; i < availableModes; i++)
{
pD3D->EnumAdapterModes( adapter, format, i, &mode);
formatModeList->push_back(mode); // A list of modes
}
また、ウィンドウモードの場合は、フリッピングを使用していないことを確認してください。ウィンドウモードでは、実行中のアプリケーションの現在のビデオモードを共有します。残念ながら、より遅いブリッティングプロセスを使用する必要があります。うまくいけば、これがお役に立てば幸いです。
よろしく、
意思
于 2011-06-16T16:03:36.910 に答える