所以我现在已经使用DevIL库一段时间了(与ILU和ILUT一起),并且在我使用它之后几乎没有问题。那就是,直到现在。突然间它似乎不适用于任何格式的任何图像。我使用此代码:
GLuint myTex;
void Init() {
myTex = ilutGLLoadImage(L"img.tga");
}
void Draw() { // 2D Drawing
glBindTexture(GL_TEXTURE_2D, myTex);
draw::TwoD::Textured::Rectangle(100, 100, 200, 200);
}
矩形显示为空白。我检查了这个函数,看起来应该可以正常工作,所以我试着调用ilGetError()
。它为我尝试的几乎所有不同的图像返回了IL_INVALID_EXTENSION
。我已经尝试了整个目录,甚至确保我使用的是正确版本的DevIL(unicode),但仍然会返回此内容。知道发生了什么吗?
提前致谢!
编辑:
我还注意到即使指定的文件不存在,DevIL也会返回此值。这让我觉得DevIL本身而不是我的代码有问题。
编辑2:
所以我发现我将unicode DLL放在项目目录中(必要时),但事实证明我链接到多字节字符的库目录。即使在修好之后,问题仍然存在。我被这个难倒了。
编辑3:
很抱歉这么多编辑,但我也发现我之前项目中的DevIL设置仍然完美无缺。它似乎只是我现在使用的项目。所有相关代码都是相同的(复制/粘贴),所以我认为它与项目属性有关,但我找不到任何差异。您知道在VS2015中将一个项目的属性复制到另一个项目的方法吗?