2
我目前已經使用CreateWICTextureFromFile加載了紋理,但是我想稍微控制一下它,並且我想將圖像以字節的形式存儲在資源加載器中。以下是兩組測試代碼,它們返回兩個單獨的結果,我正在尋找可能的解決方案的任何見解。DirectX11 CreateWICTextureFromMemory使用PNG
ID3D11ShaderResourceView* srv;
std::basic_ifstream<unsigned char> file("image.png", std::ios::binary);
file.seekg(0,std::ios::end);
int length = file.tellg();
file.seekg(0,std::ios::beg);
unsigned char* buffer = new unsigned char[length];
file.read(&buffer[0],length);
file.close();
HRESULT hr;
hr = DirectX::CreateWICTextureFromMemory(_D3D->GetDevice(), _D3D->GetDeviceContext(), &buffer[0], sizeof(buffer), nullptr, &srv, NULL);
作爲上述代碼的返回,我找不到組件。
std::ifstream file;
ID3D11ShaderResourceView* srv;
file.open("../Assets/Textures/osg.png", std::ios::binary);
file.seekg(0,std::ios::end);
int length = file.tellg();
file.seekg(0,std::ios::beg);
std::vector<char> buffer(length);
file.read(&buffer[0],length);
file.close();
HRESULT hr;
hr = DirectX::CreateWICTextureFromMemory(_D3D->GetDevice(), _D3D->GetDeviceContext(), (const uint8_t*)&buffer[0], sizeof(buffer), nullptr, &srv, NULL);
上述代碼返回圖像格式未知。
我很清楚在這裏做錯了什麼,任何幫助,非常感謝。試圖找到任何甚至類似的在stackoverflow和谷歌無濟於事。
找不到哪個組件? – zdd