c++ - D3DX11SaveTextureToFile 与 ID3D11ShaderResourceView

标签 c++ directx textures directx-11 d3dx

我有 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/

相关文章:

c++ - 实现 boost 任何类似的类(class)

C++ 根据其他模板参数推导模板参数

c++ - 如何将 VS、C++、OpenGL 应用程序部署到第二台计算机?

c++ - 如何存储 LPD3DXSPRITE 对象的 vector ?

C++ DirectX header

android - 如何使用 NPOT 图像作为 libpng 和 OpenGL ES 1.1 的纹理?

google-chrome - chrome 中的非 2 次幂纹理渲染警告

c++ - libxml2 2.7.8/libxml++ 2.35 和 DTD 验证的变化

c++ - 顶点着色器输入顺序

c++ - 在可变大小的四边形上包装纹理坐标?