在渲染完所有东西后,Present之前
获得BackBuffer表面
然后用D3DX的函数保存
void ScreenShot (char *filename)
{
IDirect3DSurface9 *tmp = NULL;
IDirect3DSurface9 *back = NULL;
//生成固定颜色模式的离屏表面(Width和 Height为屏幕或窗口的宽高)
D3D9Device->CreateOffscreenPlainSurface(Width, Height, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &tmp, NULL);
// 获得BackBuffer的D3D Surface
D3D9Device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &back);
// Copy一下,,需要时转换颜色格式
D3DXLoadSurfa
{
IDirect3DSurface9 *tmp = NULL;
IDirect3DSurface9 *back = NULL;
//生成固定颜色模式的离屏表面(Width和 Height为屏幕或窗口的宽高)
D3D9Device->CreateOffscreenPlainSurface(Width, Height, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &tmp, NULL);
// 获得BackBuffer的D3D Surface
D3D9Device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &back);
// Copy一下,,需要时转换颜色格式
D3DXLoadSurfa