SOIL_load_OGL_texture返回NULL,可能是工作目录问题(XCode 6)

时间:2015-03-25 18:58:38

标签: c++ xcode opengl soil

好的,所以我尝试使用SOIL来加载一个纹理"纹理"夹。 textures文件夹与代码位于同一目录中。我已经进入XCode项目的方案设置,并将工作目录更改为文件夹所在的目录。但是,当我执行此简单测试时,它始终指示GLUint纹理为NULL。

GLuint texture = SOIL_load_OGL_texture
(
 "textures/image.png",
 SOIL_LOAD_AUTO,
 SOIL_CREATE_NEW_ID,
 SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
 );

if (texture == 0){
    std::cout << "Texture not found!\n";
    return 0;
}

我不确定我是否在SOIL方面做错了什么,但我的预感是该文件根本就没有被读取。正如我所说,我在XCode中更改了工作目录,但这并没有改变任何内容。

1 个答案:

答案 0 :(得分:0)

好的,明白了。问题是PNG文件是16位而不是8位。此外,SOIL_load_OGL_texture功能需要在glfwCreateWindow()glfwMakeContextCurrent()之后调用。

以下是帮助我的答案:SOIL: 'Unable to open file' in C++ and OpenGL with Xcode