Ошибка загрузки devIL 1285

У меня проблема с загрузкой изображения с помощью devIL для openGL.

в более ранней части моего проекта я называю

ilInit();

в функции сразу после того, как я вызываю свою загрузку так же, как это

//generate a texture
ilGenImages( 1, &uiTextureHandle );

//bind our image
ilBindImage( uiTextureHandle );

//load
//ilLoad( IL_PNG, (const ILstring)"fake.png" );
ilLoad( IL_PNG, "fake.png" );

ради отслеживания ошибок я помещал "ilGetError()" после каждого вызова, который возвращал 0 для всех из них, кроме ilLoad, который возвращает 1285.

после некоторых поисков я понял, что это ошибка нехватки памяти.

поэтому ilLoad всегда возвращает 0 и не загружается.

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


person Franky Rivera    schedule 14.11.2012    source источник
comment
я также только что проверил, могу ли я загрузить другой формат изображения, моим испытуемым был .bmp, и эта загрузка не дала мне никаких ошибок   -  person Franky Rivera    schedule 14.11.2012


Ответы (1)


Распространенной причиной сбоя ilLoad() с IL_OUT_OF_MEMORY является просто поврежденный PNG-файл, который вы используете.

Однако 1285 означает IL_INVALID_VALUE - это означает, что указанный вами путь, вероятно, неверен. Попробуйте указать абсолютный путь (помните, что обратная косая черта недопустима в C++, если только вы не используете двойную косую черту).

Я лично использовал DevIL в течение достаточно долгого времени, и мне это нравилось. Тем не менее, я призываю вас рассмотреть FreeImage. Он находится в стадии разработки и достаточно стабилен — я использовал его в коммерческом движке для всех своих потребностей в изображениях, и он прилично хорошо интегрируется с DirectX/OpenGL, как и DevIL.

person Mike Weir    schedule 04.08.2013