因此,我已经使用 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 中将一个项目的属性复制到另一个项目的任何方法吗?