如何获取基于ID3D11Texture2D的DirectX::Image(来自DirectXTex)结构?
How to get the DirectX::Image (from DirectXTex) structure based on ID3D11Texture2D?
我有一个自定义纹理 class:
class Texture{
ID3D11Texture2D * renderTargetTexture;
public:
...
void saveToTGA(std::wstring filePath);
};
我将此纹理用作渲染通道之间的渲染目标。我想编写 saveToTGA(std::wstring filePath)
方法,将纹理保存到文件(一种屏幕截图)。
MSDN 说 D3DX11SaveTextureToFile(...)
已贬值,所以我决定按照他们的建议使用 DirectXTex 库。
我知道我必须使用:
DirectX::Image image = ...
DirectX::SaveToTGAFile(image, filePath.c_str());
但问题是:如何根据ID3D11Texture2D
获取DirectX::Image
(来自DirectXTex)结构?
您可以使用 MSDN 文档
Blockquote we recommend that you use the DirectXTex library, CaptureTexture then SaveToXXXFile (where XXX is WIC, DDS, or TGA; WIC doesn't support DDS and TGA; D3DX 9 supported TGA as a common art source format for games).
因此,首先使用
从纹理缓冲区捕获纹理
HRESULT hr = DirectX::CaptureTexture(m_D3D->GetDevice(), m_D3D->GetDeviceContext(), resourceContext, image);
然后使用保存功能
hr = DirectX::SaveToDDSFile(image.GetImages(),image.GetImageCount(), image.GetMetadata(), DirectX::DDS_FLAGS_NONE, Filename);
请参阅此参考资料https://github.com/Microsoft/DirectXTex/wiki/CaptureTexture
我有一个自定义纹理 class:
class Texture{
ID3D11Texture2D * renderTargetTexture;
public:
...
void saveToTGA(std::wstring filePath);
};
我将此纹理用作渲染通道之间的渲染目标。我想编写 saveToTGA(std::wstring filePath)
方法,将纹理保存到文件(一种屏幕截图)。
MSDN 说 D3DX11SaveTextureToFile(...)
已贬值,所以我决定按照他们的建议使用 DirectXTex 库。
我知道我必须使用:
DirectX::Image image = ...
DirectX::SaveToTGAFile(image, filePath.c_str());
但问题是:如何根据ID3D11Texture2D
获取DirectX::Image
(来自DirectXTex)结构?
您可以使用 MSDN 文档
Blockquote we recommend that you use the DirectXTex library, CaptureTexture then SaveToXXXFile (where XXX is WIC, DDS, or TGA; WIC doesn't support DDS and TGA; D3DX 9 supported TGA as a common art source format for games).
因此,首先使用
从纹理缓冲区捕获纹理HRESULT hr = DirectX::CaptureTexture(m_D3D->GetDevice(), m_D3D->GetDeviceContext(), resourceContext, image);
然后使用保存功能
hr = DirectX::SaveToDDSFile(image.GetImages(),image.GetImageCount(), image.GetMetadata(), DirectX::DDS_FLAGS_NONE, Filename);
请参阅此参考资料https://github.com/Microsoft/DirectXTex/wiki/CaptureTexture