我在使用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()” 除了ilLoad返回1285
之外,所有这些都返回0 经过一番搜索,我发现这是一个缺乏内存错误。所以ilLoad总是返回0并且没有加载。
任何人都知道我的装载不正确或者我忘记做某事 因为我觉得我可能已经忘记了某些东西,这就是1285出现的原因。
答案 0 :(得分:0)
ilLoad()
与IL_OUT_OF_MEMORY
失败的常见原因很简单,就是您正在使用的PNG文件已损坏。
然而,1285意味着IL_INVALID_VALUE
- 这意味着你给它的路径可能是错误的。尝试一个绝对路径(记住在C ++中反斜杠不合适,除非你使用双斜杠)。
我个人已经使用DevIL很长一段时间并且喜欢它。不过,我恳请你考虑一下FreeImage。它有更多的开发和稳定 - 我在商业引擎中用它来满足我的所有图像需求,它与DirectX / OpenGL很好地集成,就像DevIL一样。