Posted on 2011-05-19 13:45
reiks 閱讀(1622)
評論(2) 編輯 收藏 引用 所屬分類:
Direct3D
步驟:
1、用D3D的GetBackBuffer得到一個IDirect3DSurface9
2、然后使用IDirect3DSurface9的GetDC接口得到dc
3、使用dc繪圖
4、用IDirect3DSurface9的ReleaseDC釋放dc
注意:
1、buffer的格式必須是以下幾種之一:
D3DFMT_R5G6B5,D3DFMT_X1R5G5B5,D3DFMT_R8G8B8,D3DFMT_X8R8G8B8
2、D3DPRESENT_PARAMETERS 的 Flags需要設置D3DPRESENTFLAG_LOCKABLE_BACKBUFFER
3、GetDC接口在以下情況下會失?。?br />1)surface已經被鎖定了
2)surface對應的dc沒有被釋放
3)surface包含在一張texture中,而這個texture中的另一個surface已經被鎖定了
4)surface存在于default memory pool,并且沒有設置dynamic usage flag
5)surface存在于scratch pool
參考文獻:
http://www.xmission.com/~legalize/book/download/04-2D%20Applications.pdf