#android #opengl-es #android-ndk
#Android #opengl-es #android-ndk
Вопрос:
Есть ли у кого-нибудь рабочий код, использующий glTexSubImage2D() на Android, желательно через NDK, но даже только на Java?
В моем коде glTexImage2D() работает нормально, но glTexSubImage2D() на той же текстуре в той же точке кода — нет. Тот же код работает нормально в моей настольной системе. Есть ли какие-либо скрытые недостатки при использовании glTexSubImage2D () на Android?
Комментарии:
1. glCopyTexImage2D также завершается с ошибкой таким же образом, с GL_INVALID_OPERATION . Что не связано с неправильным форматом пикселей или с измерениями, отличными от степени двойки.
Ответ №1:
По нашему опыту, проблема, связанная с тем, что glTexSubImage2D() не работает должным образом, возникает только в телефонах HTC Android — по крайней мере, в моделях, которые мы пробовали: Desire HD, Desire Z и X315E. Это не происходит на ПК с Windows или в телефонах Motorola Android.
Мы обнаружили, что причина нашей проблемы в том, что, вероятно, в драйверах HTC есть ошибка, потому что даже для GL_UNPACK_ALIGNMENT установлено значение 4, glTexSubImage2D() по-прежнему обрабатывает переданные вами пиксели как не выровненные. Т.е. Кажется, что glTexSubImage2D() всегда использует 1, а не реальное значение, установленное вами или OpenGL, в качестве значения GL_UNPACK_ALIGNMENT . Однако на ПК с Windows и телефонах Motorola Android эта функция использует правильное значение GL_UNPACK_ALIGNMENT.