1

2つのフルスクリーンDirect3D表示が必要なプログラムを開発しています。ドキュメントによると、ウィンドウモードでスワップチェーンを作成してから、フルスクリーンモードに切り替える必要があります。これはWindows8では正常に機能しますが(現在、Alt-Enterを使用して切り替えを行っています)、Windows 7では機能しません。Windows7では、この問題と同様の問題が発生します。フルスクリーンに切り替えても問題なく動作しますが、以前はフルスクリーンで正常に機能していたもう一方の画面は、フルスクリーンを解除するまで黒くなります(同じフルスクリーン解像度のままになります)。

このタグで大まかなプロトタイプの私の混乱を見つけることができます。

どうやら過去に特にWindows7に関連する他のバグがあったようです...しかし、私はわずかに異なる問題を抱えているようです。

また、リンクされた質問で提案されているようにDWMコンポジションを無効にしようとしましたが、問題を解決するために何もしませんでした。

この問題について提供できる情報が他にある場合はお知らせください...最悪のシナリオは、マルチモニターのフルスクリーンセットアップで正常に機能するように見えるDX9にフォールバックすることだと思います...

4

1 に答える 1

1

問題の原因を突き止めたのではないかと思います。同じアダプタに対して複数のID3D11Deviceを作成していたことが原因である可能性があります。

すべてのウィンドウとレンダリングに1つのスレッドしか必要ないときに、この記事で紹介した手法に従っていたため、コードは必要なものに対して非常に複雑でした。レンダーターゲットごとに同じID3D10Deviceを共有した後(出力ごとに1つのレンダーターゲット、アダプターごとに1つのID3D10Device)、大まかなメモリリークの概念実証に示すように、DX10でDXGIを取得して2つのフルスクリーンディスプレイをレンダリングすることに成功しました。

この技術のいずれかを使用するのはこれが初めてだったので、この記事を使用して、このプロセスを支援しました。モニターごとに異なる画像を表示するdirectX 10

于 2013-03-16T16:58:19.680 に答える