У меня проблема с загрузкой изображения с помощью 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.
Общая причина ilLoad()
потерпеть неудачу с IL_OUT_OF_MEMORY
просто если используемый вами файл PNG поврежден.
Тем не менее, 1285 означает IL_INVALID_VALUE
— это означает, что путь, по которому вы идете, скорее всего неправильный. Попробуйте использовать абсолютный путь (помните, что обратные слэши не подходят для C ++, если вы не используете двойные слэши).
Я лично использовал DevIL уже довольно давно и мне это понравилось. Тем не менее, я призываю вас рассмотреть FreeImage. У него немного больше развития, и он достаточно стабилен — я использовал его в коммерческом движке для всех своих нужд с изображениями, и он неплохо интегрируется с DirectX / OpenGL, как DevIL.
Других решений пока нет …