作者devilarise (Devil)
看板C_and_CPP
標題Re: [語法] 請問DirectX 9的一些問題
時間Sat Nov 28 20:21:41 2009
※ 引述《tyc5116 (累人啊....)》之銘言:
: 請問一下在DirectX的程式中
: 最後要將畫面呈現出來時會用到這樣的指令
: // Present the backbuffer contents to the display
: g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
: 如果說現在我有多個d3dDevice的話,要怎麼一起呈現呢,謝謝
HRESULT Present(
CONST RECT * pSourceRect,
CONST RECT * pDestRect,
HWND hDestWindowOverride,
CONST RGNDATA * pDirtyRegion
);
這是函式原型
詳細說明請查詢
IDirect3DDevice9::Present
不過以我現在業餘的認知來說@@
多個device好像是DX11才跑出來的東西
我還記得M$好像還發了PPT來講解說明
不知道我的理解有沒有錯誤
如果有錯誤請務必糾正我@@
另外我猜貼文的朋友是想做類似同螢幕雙打四打之類的效果吧
例如:無雙雙打那種螢幕切割, 或是瑪莉歐賽車那種四切
我是沒實際做過, 不過我推測這樣的需求
應該是透過存surface來處理的吧@@
以雙打來說
就是
先創造三個surface變數
叫 s1, s2, s3好了
s1, 存1p的surface, 尺寸左半張螢幕
s2, 存2p的surface, 右半張
s3, 存要畫到螢幕上的surface, 全顯示區
讓device先把1p的圖像畫到s1
把2p的畫到s2
再把s1 + s2存到s3
最後輸出s3
由於這段過程都是在程式裡面跑的
使用者只會看到源源不絕的s3
這是我對這種螢幕切割程式寫法的猜測
我也沒真正實際驗證過是否正確
如果有錯, 還請各位多多指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.133.240
推 VictorTom:理論上畫四次不同的內容用分佔window四個區域的ViewPort 11/29 10:21
→ VictorTom:也可以辦到....@_@" 11/29 10:21