2012-04-21 48 views
1

當我將其中一臺顯示器切換到全屏模式時,有時其他顯示器變黑,並且不顯示任何東西。我做錯了什麼,或者只是一些錯誤?當使用DXGI將一臺顯示器切換到全屏模式時,其他顯示器變黑。

我創建了一個窗口,然後創建了綁定到該窗口的交換鏈。然後我調用swapchain的SetFullScreenState,第一個參數爲true,第二個參數爲我想要全屏切換的監視器的IDXGIOutput對象。有時它可以正常工作,但有時其他所有監視器都會丟失(只有全屏顯示的內容纔會顯示)。

我的顯卡是Radeon HD6750,驅動版本是12.3。


我發現MulitMon10樣本有同樣的問題,而有些遊戲則沒有。或者,天際和猴島的故事使用D3D還是OpenGL ......?

回答

0

這個問題已經兩歲了。我剛剛遇到它。 我和DX11有類似的問題,有時候會發生在調試版本中,系統地發佈版本。 在我的範例中,主監視器擁有一個控制檯和一個可選的「按鈕」GUI。輔助監視器(可用的監視器之一)是全屏應用程序窗口,其中顯示2D專業圖像並使用1D和3D查找表格進行GPU轉換。

讓主顯示器變成空白是顯示屏。所有需要的對話框都是控制檯窗口的子窗口(因此,在主監視器上打開)。輔助監視器是一個電影數字放映機....足夠'blabla'。

因此,我的解決方案是在窗口模式下創建交換鏈,而目標窗口已經處於全屏模式。

不要問我爲什麼。這個對我有用。這裏有一點:

首先,我的顯示窗口被設置爲填滿整個顯示器表面(沒有邊框,沒有任何東西)。

其次,我使用「windowed = true」爲此窗口創建交換鏈。

事實上,即使它看上去是全屏,它也是窗口。沒有邊框,就顯示/渲染2D圖像而言,它的工作原理是相同的。直接供給後緩衝器也起作用。

然後,只有這樣,才能將後臺緩存切換爲真實的管理全屏。由於這個手術對眼睛來說非常殘酷,所以我傾向於只在絕對必要時才做。在效果上,Win7將重置整個桌面(因此,所有顯示器,所有窗口)並創建多個指示燈閃爍。

在創建backbuffer之後進入真正的全屏模式時,我從未體驗過被鎖定在桌面重置(回到原始問題)的midle中的情緒。

要完整,「窗口全屏」和「真正全屏」有所不同。你可能會用到的東西。

  • 窗口全屏:其他窗口/對話框將重疊您的2D創建。

  • 真正的全屏:其他窗口/對話框應該留在下面(不可見,但那裏)。

根據需要切換兩種模式之間的切換會很好,除非桌面重置壓力是重罰。