Posted on 2011-05-19 13:45
reiks 阅读(1565)
评论(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接口在以下情况下会失败:
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