Posted on 2011-05-19 13:45
reiks 閱讀(1627)
評(píng)論(2) 編輯 收藏 引用 所屬分類:
Direct3D
步驟:
1、用D3D的GetBackBuffer得到一個(gè)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需要設(shè)置D3DPRESENTFLAG_LOCKABLE_BACKBUFFER
3、GetDC接口在以下情況下會(huì)失敗:
1)surface已經(jīng)被鎖定了
2)surface對(duì)應(yīng)的dc沒有被釋放
3)surface包含在一張texture中,而這個(gè)texture中的另一個(gè)surface已經(jīng)被鎖定了
4)surface存在于default memory pool,并且沒有設(shè)置dynamic usage flag
5)surface存在于scratch pool
參考文獻(xiàn):
http://www.xmission.com/~legalize/book/download/04-2D%20Applications.pdf