KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I want to render a video frame-by-frame using DirectX 10. The frames would be processed later by some other tool like mencoder or ffmpeg. I had no problems doing so in DX9 using D3DXSaveSurfaceToFile . Now, in DX10 I've found D3DX10SaveTextureToFile , but had no luck using it to save my backbuffer. I use the following code: ID3D10Resource *backbufferRes; _defaultRenderTargetView->GetResource(&backbufferRes); D3D10_TEXTURE2D_DESC texDesc; texDesc.ArraySize = 1; texDesc.BindFlags = 0; texDesc.CPUAccessFlags = D3D10_CPU_ACCESS_READ; texDesc.Format = backbufferSurfDesc.Format; texDesc.Height = backbufferSurfDesc.Height; texDesc.Width = backbufferSurfDesc.Width; texDesc.MipLevels = 1; texDesc.MiscFlags = 0; texDesc.SampleDesc = backbufferSurfDesc.SampleDesc; texDesc.Usage = D3D10_USAGE_STAGING; ID3D10Texture2D *texture; HRESULT hr; V( _device->CreateTexture2D(&texDesc, 0, &texture) ); _device->CopyResource(texture, backbufferRes); V( D3DX10SaveTextureToFile(texture, D3DX10_IFF_DDS, filename) ); texture->Release(); This creates a .dds image that can not be opened by any sort of DDS view/editor I know of. What's wrong with my code?
Tags (comma-separated)
Save Edits
Cancel