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

SOIL_load_OGL_texture returning NULL, possibly a working directory issue (XCode 6)

好的,所以我正在尝试使用 SOIL 加载 "textures" 文件夹中的 .png 文件。纹理文件夹与代码位于同一目录中。我进入了 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 中的工作目录,但这并没有改变任何东西。

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

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