Как загрузить текстуру на DirectX?

Я использую этот код для загрузки текстуры:

HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);

Но он всегда возвращает D3DXERR_INVALIDDATA ошибку!

Треугольник, который я визуализирую, работает просто отлично, поэтому остальная часть программы работает, за исключением загрузки текстуры.

Что я пропустил? файл точно есть. Я пробовал также с jpg и png, а также с меньшим изображением размером 256x256. изображение отлично работает со мной .. так что это не может быть недействительными данными, хотя так и написано.


person Rookie    schedule 09.01.2012    source источник


Ответы (1)


Скорее всего, даже если файл доступен, он находится не по правильному пути для доступа к программе.

Если вы запускаете свою программу из Visual Studio, убедитесь, что рабочий каталог указывает на папку, содержащую файл test.bmp. К сожалению, расположение этого параметра сильно меняется в разных версиях VS, но в VS 2005 это Project->Properties->Debugging->Working Directory. Убедитесь, что у вас одинаковые настройки для режима отладки и выпуска.

Вы можете проверить текущий каталог с помощью кода GetCurrentDirectory.

person jowo    schedule 09.01.2012
comment
Превосходно! Вот оно. это, вероятно, сэкономило мне часы отладки! Спасибо! - person Rookie; 09.01.2012