D3D中简单的截图方法
<strong><br/><br/></strong>在渲染完所有东东后(Present之前) <p></p><p>获得BackBuffer表面</p><p>然后用D3DX的函数保存</p><p>void ScreenShot (char *filename)<br/>{<br/> IDirect3DSurface9 *tmp = NULL;<br/> IDirect3DSurface9 *back = NULL;</p><p> //生成固定颜色模式的离屏表面(Width和 Height为屏幕或窗口的宽高)<br/> D3D9Device->CreateOffscreenPlainSurface(Width, Height, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &tmp, NULL);</p><p> // 获得BackBuffer的D3D Surface<br/> D3D9Device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &back);</p><p> // Copy一下,,需要时转换颜色格式<br/> D3DXLoadSurfaceFromSurface(tmp, NULL, NULL, back, NULL, NULL, D3DX_FILTER_NONE, 0);</p><p> // 保存成BMP格式<br/> D3DXSaveSurfaceToFile(filename, D3DXIFF_BMP, tmp, NULL, NULL);</p><p> // 释放Surface,防止内存泄漏<br/> SAFE_RELEASE(tmp);<br/> SAFE_RELEASE(back);<br/>}</p><p>文件格式可以为:<br/>D3DXIFF_BMP<br/> Microsoft Windows bitmap (BMP) file format.</p><p>D3DXIFF_JPG<br/> Joint Photographics Experts Group (JPEG) compressed file format.</p><p>D3DXIFF_PNG<br/> Portable Network Graphics (PNG) file format.</p><p>D3DXIFF_DDS<br/> Microsoft DirectDraw surface (DDS) file format.</p><p>D3DXIFF_DIB<br/> Windows device-independent bitmap (DIB) file format.</p><p>D3DXIFF_HDR<br/> High dynamic range file format.</p><p>D3DXIFF_PFM<br/> Portable float map file format.<br/></p> 总不能保存网页,遗憾
页:
[1]