我有 ID3D11ShaderResourceView * textureResView
,我想将该纹理保存到文件中。我想我应该先从中提取ID3D11Texture2D
,所以我做了一个代码:
ID3D11Resource * res;
ID3D11Texture2D * tex;
textureResView->GetResource(&res);
res->QueryInterface(&tex);
HRESULT result = D3DX11SaveTextureToFile(
g_pImmediateContext, tex, D3DX11_IFF_PNG, "name.png");
不幸的是,返回 E_FAIL
。我做错了什么?
最佳答案
因为 E_FAIL 返回,所以 D3DX11SaveTextureToFile(...) 函数有问题。 如果您使用 Windows 8,请使用其他功能 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ff476298%28v=vs.85%29.aspx )
但我成功了尝试
HRESULT result = D3DX11SaveTextureToFile(g_pImmediateContext, tex, D3DX11_IFF_PNG, L"name.png");
LPCSTR 是一种不同于字符串格式的格式,因此您必须将 L 放在字符串的前面。
希望它有用
关于c++ - D3DX11SaveTextureToFile 与 ID3D11ShaderResourceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14065490/