c++ - 魔鬼 ilLoad 错误 1285

标签 c++ opengl loading textures devil

我在使用 devIL for 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()” 除了返回 1285 的 ilLoad 之外,所有这些都返回 0

经过一番搜索,我发现这是内存不足的错误。

所以 ilLoad 始终返回 0 且未加载。

任何人都知道我在加载方面做错了什么,或者我是否忘记做某事 因为我觉得我可能忘记了什么,这就是 1285 出现的原因。

最佳答案

ilLoad()IL_OUT_OF_MEMORY 而失败的一个常见原因很简单,就是您使用的 PNG 文件已损坏。

但是,1285 表示 IL_INVALID_VALUE - 这意味着您提供的路径可能是错误的。尝试绝对路径(请记住,在 C++ 中反斜杠不可用,除非您使用双斜杠)。

我个人使用 DevIL 已有一段时间并且非常喜欢它。但是,我强烈建议您考虑 FreeImage。它正在进行更多的开发并且非常稳定 - 我在商业引擎中使用它来满足我所有的图像需求,并且它与 DirectX/OpenGL 集成得很好,就像 DevIL 一样。

关于c++ - 魔鬼 ilLoad 错误 1285,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13376021/

相关文章:

c++ - 为什么不建议允许查询 C++20 合约的合约级别?

opengl - 在 OpenGL 上映射 Wavefront .obj 纹理顶点

C# - 将文本文件作为类加载

java - 是否可以从 xml 加载 java 类型

Android OpenGL 纹理 : creating and deleting them on the fly

c++ - Opencv 复制 3 channel IplImage 到 4 channel IplImage

c++ - 在函数中使用 "result variable"与原始变量返回之间的区别?

c++ - C2665 : 'QObject::connect' : none of the 3 overloads could convert all the arguments types

c++ - OSX OpenGL 4.1 glEnableVertexAttribArray glDrawArrays GL_INVALID_OPERATION

c++ - glew.h 和 glext.h 之间不兼容的函数原型(prototype)