2012-04-21 8 views
1

モニターをフルスクリーンモードに切り替えると、他のモニターが黒くなり、何も表示されないことがあります。私は何か間違ったことをしたのか、それともちょっとしたバグですか?DXGIで1つのモニターをフルスクリーンに切り替えると、他のモニターが黒くなる

ウィンドウを作成した後、そのウィンドウにバインドされたスワップチェーンを作成しました。そして、私はswapchainのSetFullScreenStateを最初のパラメータtrue、2番目のパラメータをフルスクリーンに切り替えたいモニタのIDXGIOutputオブジェクトと呼びました。ときどきうまくいくこともありますが、他のすべてのモニターが失われてしまうこともあります(全画面表示のものだけが表示されます)。

私のグラフィックカードはRadeon HD6750で、ドライバのバージョンは12.3です。


MulitMon10サンプルには同じ問題がありますが、一部のゲームではそうではありません。または、SkyrimとThe Monkey Islandの物語はD3DまたはOpenGLを使用しますか?

答えて

0

この質問は2歳です。私はちょうどそれに出会った。 私はDX11で同様の問題を抱えていましたが、リリースバージョンではシステム状況に応じてデバッグバージョンで発生することがありました。 私のパラダイムでは、プライマリモニタはコンソールとオプションの「プレスボタン」GUIをホストします。セカンダリモニタ(利用可能なものの1つ)は、2Dプロフェッショナルイメージが表示され、1Dルックアップテーブルと3Dルックアップテーブルを使用してGPU変換されるフルスクリーンアプリケーションウィンドウです。

プライマリモニタが空白になるのはショーストッパでした。すべての必要なダイアログはコンソールウィンドウの子です(したがって、プライマリモニタで開く)。セカンダリモニタは、動画デジタルプロジェクタ....十分な 'blabla'です。

私のソリューションは、ターゲットウィンドウがすでにフルスクリーンモードになっている間、ウィンドウモードでスワップチェーンを作成することでした。

なぜ私に質問しないでください。わたしにはできる。

最初に、私の表示ウィンドウは、モニタ面全体を塗りつぶすように設定されています(境界線なし、すべてではありません)。

第2に、このウィンドウのスワップチェーンを "windowed = true"で作成します。

実際、フルスクリーンで見ても、ウィンドウが表示されます。境界がない場合は、2D画像の表示/レンダリングに関する限り同じ動作をします。バックバッファーを直接供給することもできます。

次に、バックバッファを実際の管理用フルスクリーンに切り替えることができます。この手術は目にとって非常に残酷なので、私は絶対に必要なときにのみ行う傾向があります。エフェクトでは、Win7はデスクトップ全体(したがって、すべてのモニタ、すべてのウィンドウ)をリセットし、複数の点滅を作成します。

バックバッファが作成された後に実際のフルスクリーンになると、デスクトップのリセット中に(元の質問に戻って)固執していることは決してありませんでした。

完全にするには、 'ウィンドウフルスクリーン'と 'フルフルスクリーン'の違いがあります。あなたが使うかもしれない何か。

  • ウィンドウ全体のフルスクリーン:他のウィンドウ/ダイアログは2D作成と重複します。

  • リアルフルスクリーン:他のウィンドウ/ダイアログは、下にとどまるべきです(ただし、そこには表示されません)。

デスクトップリセットのストレスが重いペナルティであることを除いて、必要に応じて2つのモードを切り替えるのがいいでしょう。

関連する問題