#java #opengl-es-2.0
#java #opengl-es-2.0
Вопрос:
В документации glBindTexture()
к функции OpenGL говорится
[…] Должно быть либо GL_TEXTURE_2D, либо GL_TEXTURE_CUBE_MAP .
Несмотря на то, что я вызываю функцию следующим образом:
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, texture);
это выдает мне ошибку GL_INVALID_ENUM.
Я уже пытался вызвать glEnable(GL_TEXTURE_2D)
функцию, но это не удалось.
Что вызывает это?
Комментарии:
1. Вы полностью уверены, что ошибка связана с этим вызовом? Когда вы вызываете
glGetError()
перед выполнением этого вызова, он возвращаетсяGL_NO_ERROR
? И только после этого вызова он возвращаетсяGL_INVALID_ENUM
? Извините за очевидный вопрос, но на удивление часто случается, что люди звонятglGetError()
и предполагают, что возвращенная ошибка была вызвана непосредственно предшествующим вызовом, в то время как статус ошибки был фактически установлен более ранним вызовом.2. @Reto Koradi Спасибо за ваш ответ. Я проверю это.
3. @RetoKoradi Ваше предположение было правильным. Ошибка фактически генерируется перед этим утверждением. Но я понятия не имею, откуда она берется.
4. Распространите
glGetError()
вызовы по вашему коду и посмотрите, где обнаружена первая ошибка. Вы можете использовать что-то вроде ручного двоичного поиска. Сначала вы нашли место в коде, где нет ошибки, а затем место, где есть ошибка, вы размещаете другоеglGetError()
примерно на полпути между ними и постепенно сокращаете диапазон таким образом, пока не сузите его до одного вызова.