作者Killercat (殺人貓™)
看板GameDesign
標題Re: [請益] 在雙螢幕環境下做全螢幕輸出
時間Wed Mar 17 14:55:30 2010
※ 引述《pychang78 (BU)》之銘言:
: 我想要擴大我螢幕的範圍
: 所以我用了兩個螢幕輸出
: 將兩個螢幕以水平延伸桌面合在一起
: 解析度變為2048*768 (兩倍螢幕寬)
: 我使用win32+opengl
: 我初始化將螢幕範圍設為2048*768
: 並開啟fullscreen模式
: 但是執行後解析度自動會縮回1024*768
: 所以第2台螢幕看到的東西還是桌面
: 請問有什麼方法可以開啟我要的功能?
: 謝謝
這樣當然不行 = =
(我用DX來講,GL有對應的請自己找)
兩個螢幕基本上在硬體HAL上看到的會是兩個Adapter
DX有個應該大家都很眼熟的函式
CreateDevice(D3DADAPTER_DEFAULT, .....)
這邊的Adapter在普通電腦上就是指你一個螢幕
(以全螢幕來講... 視窗化的話情況不同, 視窗化的話一個視窗就是一個Adapter)
(ATi的Eyefinity技術是個例外,後面會提)
簡單的說,你發現了嗎?一個螢幕就是一個Adapter
(在技術文件上, CreateDevice的參數說明得很清楚)
所以你要做跨螢幕輸出,基本上在DX來講就需要做兩個Device
然後自己去決定每個Device要畫哪個部分
ATi Eyefinity技術則是針對這個問題而研發的技術
他可以把數個螢幕並接成一個Adapter,所以你就可以直接一次指定螢幕解析度
他就可以自己幫你計算各個螢幕應該要輸出多少
所以你這個問題來講, Eyefinity已經幫你做好了...er...當然你要買ATI的卡 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.208.83.250
推 bignose1007:當然你也可以開一個兩個螢幕大的視窗代替看看 03/17 23:46
→ Killercat:那個就是上面推文說的了,one window per device的做法 03/18 00:07
→ Killercat:不過全螢幕做法理論上沒Eyefinity Tech下的確得開2dev 03/18 00:07
推 wupojung:我用偽視窗作過...but OpenCV = = 不過也是NV的卡 03/21 14:00
→ wupojung:一般來說偽視窗的方式應該可以做到把... 03/21 14:00
推 bignose1007:nvidia的卡也行,有選項可以把兩個螢幕合成一大個 03/21 23:30
→ bignose1007:我試過了1680*2 * 1050 全螢幕的程式 03/21 23:32
推 pychang78:樓上的做法我之後有做出來 可是我是開去除邊框的視窗 03/22 09:28
→ pychang78:但是如果是開full screen mode就會縮回一個桌面大小 03/22 09:30
→ bignose1007:我是開全螢幕的模式耶,兩個螢幕大的,用directx 9.0 03/28 15:57