Я могу загрузить 725×483 JPG текстуры, но не 725×544
код:
texId = SOIL_load_OGL_texture(fileName, SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID, 0);
Я получил ошибку:
Access violation reading location 0x06851002
— VS2012 экспресс
Я немного отладил SOIL, и похоже, что ошибка возникает сразу после того, как мы вызываем glTexImage2D (в библиотеке SOIL).
Когда я добавлю SOIL_FLAG_MIPMAP
к коду загрузки все работает нормально.
Эта ошибка была также на AMD (5570) и Intel (HD 4000).
Решено, но думаю стоит упомянуть о решении:
GL_UNPACK_ALIGNMENT
по умолчанию это 4, но когда я изменил его на 1, это сработало!SOIL_LOAD_AUTO
в SOIL_RGBA
, AUTO
означает оригинальный формат текстуры и для изображений jpg это RGB, поэтому это может быть проблематично, когда выравнивание при распаковке равно 4.с SOIL_FLAG_MIPMAP
Почва на самом деле изменяет изображение в POT, и поэтому нет проблем с размером распаковки.
Других решений пока нет …