SOIL_load_OGL_texture, возвращающая NULL, возможно, проблема с рабочим каталогом (XCode 6)

Итак, я пытаюсь использовать SOIL для загрузки файла.png, который находится в папке "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 ответ

Решение

ОК, разобрался. Проблема заключалась в том, что файл PNG был 16-битным, а не 8-битным. Так же SOIL_load_OGL_texture функция должна быть вызвана после glfwCreateWindow() а также glfwMakeContextCurrent(),

Вот ответ, который мне помог: SOIL: "Невозможно открыть файл" в C++ и OpenGL с Xcode

Другие вопросы по тегам