D3DX10CreateTextureFromFile возвращает неизвестную ошибку

ОК, в первую очередь вот код проблемы:

D3DX10_IMAGE_LOAD_INFO loadInfo;
ZeroMemory( &loadInfo, sizeof(D3DX10_IMAGE_LOAD_INFO) );
loadInfo.BindFlags = D3D10_BIND_SHADER_RESOURCE;

ID3D10Resource *texture = NULL;
LPCWSTR imageFile = L"../test.bmp";
D3DX10CreateTextureFromFile( pD3DDevice, imageFile, &loadInfo, NULL, &texture, &hr);

if ( hr != S_OK )
{
_com_error err(hr);
LPCTSTR errMsg = err.ErrorMessage();
MessageBox(mHwnd, errMsg, L"Error", MB_OK | MB_ICONEXCLAMATION); return false;
}

Проблема в том, что я не могу получить D3Dx10CreateTextureFromFile для создания правильной текстуры. Единственная ошибка, которую я получаю — «Неизвестная ошибка 0x88790002», поэтому я не могу понять это самостоятельно. Я искал и не мог найти что-нибудь подходящее.

pD3DDevice является действительным и протестированным устройством D3D10. Если я закомментирую строку D3Dx10CreateTextureFromFile, все остальное работает нормально.

Я новичок в DirectX, поэтому любая помощь приветствуется.

PS У меня есть необходимые файлы .h и .lib.

0

Решение

Старая утилита DirectX Error Lookup говорит, что HRESULT 0x88790002 D3D10_ERROR_FILE_NOT_FOUND, Попробуйте использовать L"..\\test.bmp"; для имени файла и перепроверьте, что текущий рабочий каталог соответствует ожидаемому.

Обратите внимание, что на данный момент очень мало причин использовать Direct3D 10 вообще. Вы должны использовать DirectX 11. D3DX9, D3DX10 и D3DX11 устарели и находятся только в устаревшем DirectX SDK. Увидеть MSDN. Вы должны посмотреть на использование одного из многих открытых источников замены для наследства D3DX10.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector