у меня есть 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.
Надеюсь, что это работает
Других решений пока нет …