Итак, я пытаюсь использовать SOIL для загрузки файла .png, находящегося в папке «текстуры». Папка текстур находится в том же каталоге, что и код. Я перешел в настройки схемы проекта XCode и изменил рабочий каталог на тот, где находится папка. Однако, когда я делаю этот простой тест, он всегда указывает, что текстура GLUint имеет значение NULL.SOIL_load_OGL_texture возвращает NULL, возможно, проблему с рабочим каталогом (XCode 6)
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;
}
Я не уверен, если я делаю что-то неправильно в отношении к ПОЧВАМ, но я подозреваю, что файл просто не читать. Как я уже сказал, я изменил рабочий каталог в XCode, но это ничего не меняет.
Вызов 'SOIL_last_result', чтобы получить сообщение об ошибке, и распечатать его. –
@ColonelThirtyTwo Он говорит: «PNG не поддерживается: только 8 бит». Хорошо, так что он находит файл. Однако, если я попытаюсь изменить изображение на 8-битный PNG или 8-битный JPG, он даст мне ошибку EXC_BAD_ACCESS в строке, где я назначаю переменную «текстура». –
Можете ли вы получить трассировку в том месте, где в SOIL он сработает? Также убедитесь, что перед загрузкой текстуры настроен контекст OpenGL. –