|

楼主 |
发表于 2012-4-23 09:29:00
|
显示全部楼层
Re: [DX9]如何将后台缓冲拷贝到IDirect3DTexture9里??
解决了,奉上代码:
- {
- IDirect3DSurface9* pRenderTargete = NULL;
- pD3DDevice->GetRenderTarget(0, &pRenderTargete);
- ID3DXBuffer* pBuffer = NULL;
- D3DXSaveSurfaceToFileInMemory(&pBuffer, D3DXIFF_TGA, pRenderTargete, NULL, NULL);
- IDirect3DTexture9* pTexture = NULL;
- if (FAILED(D3DXCreateTextureFromFileInMemoryEx(
- pD3DDevice,
- pBuffer->GetBufferPointer(), pBuffer->GetBufferSize(),
- 1024, 768,
- 0, // Mip levels
- 0, // Usage
- D3DFMT_A8R8G8B8, // Format
- D3DPOOL_MANAGED, // Memory pool
- D3DX_FILTER_NONE, // Filter
- D3DX_DEFAULT, // Mip filter
- 0, // Color key
- NULL, NULL,
- &pTexture ) ) )
- {
- MessageBoxA(0, "纹理创建失败!", 0, MB_OK);
- return;
- }
- D3DXSaveTextureToFileA("out.png", D3DXIFF_PNG, pTexture, NULL);
- pBuffer->Release();
- pTexture->Release();
- pRenderTargete->Release();
- }
复制代码
感谢CSDN::AnsonYao |
|