1

拡張モードであるモニターから別のモニターに移動したい単純な directX-9 テスト アプリがあります。
ウィンドウとデバイスはプライマリ モニターに作成され、シーンは正しく描画されますが、ウィンドウを 2 番目のモニターに移動するとフリーズします。エラーはなく、現在の呼び出しでさえ失敗しませんが、ウィンドウの更新はありません。ウィンドウをプライマリ モニターに戻すとすぐに、すべてが正常に戻ります。
これを機能させるために何が欠けているのか、誰かが私にヒントを与えることができますか?

4

1 に答える 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 に答える