Я использую официальный порт Android SDL 1.3 и использую его для настройки рендерера GLES2.Это работает для большинства устройств, но для одного пользователя, это не работает.Вывод журнала показывает следующую ошибку:
error of type 0x500 glGetIntegerv
Я посмотрел 0x500, и это относится к GL_INVALID_ENUM.Я проследил, где проблема возникает в следующем коде внутри библиотеки SDL: (полный исходный код довольно велик, и я вырезал записи и основные строки проверки ошибок, поэтому дайте мне знать, если я не включил достаточно информации здесь)
glGetIntegerv( GL_NUM_SHADER_BINARY_FORMATS, &nFormats );
glGetBooleanv( GL_SHADER_COMPILER, &hasCompiler );
if( hasCompiler )
++nFormats;
rdata->shader_formats = (GLenum *) SDL_calloc( nFormats, sizeof( GLenum ) );
rdata->shader_format_count = nFormats;
glGetIntegerv( GL_SHADER_BINARY_FORMATS, (GLint *) rdata->shader_formats );
Сразу после последней строки (glGetIntegerv для GL_SHADER_BINARY_FORMATS), glGetError () возвращает GL_INVALID_ENUM.