Почему я получаю «вызов OpenGL ES API без текущего контекста»?

Я новичок в разработке как openGL, так и Android, поэтому, пожалуйста, простите меня, если мой вопрос очень тривиален.

Я пытаюсь создать простое небольшое приложение, которое принимает входные данные от пользователя в трех EditTexts, представляющих значение от 0 до 100% для каждого компонента цвета RGB, отображаемого в GLSurfaceView.

Уловка в том, что мне это нужно, чтобы использовать openGL ES 2.0, и мне нужно передать данные в программу затенения, используя единообразное значение, чтобы, как только она заработала, я мог перейти к тому, чего я действительно пытаюсь достичь.

Выполнив то, что я написал, я могу заставить GLSurfaceView правильно отображать первый сплошной цвет, но всякий раз, когда я изменяю любое из значений и выполняю вызовы для восстановления единого слота в программе затенения, я получаю эту ошибку в LogCat:

ОШИБКА / libEGL (14316): вызов OpenGL ES API без текущего контекста (регистрируется один раз для каждого потока)

и, конечно, GLSurfaceView остается исходным цветом.

Я повсюду искал решение этой проблемы и, насколько я могу судить, мне, возможно, придется где-то настроить EGLContext, прежде чем настраивать средство визуализации. Однако я ничего не вижу в демонстрациях API по этому поводу, и единственная информация, которую я могу найти в Интернете, была написана до того, как GLSurfaceView был даже доступен.

Нужно ли мне все еще настраивать EGLContext или я что-то пропустил?


Дополнительная информация, которая может помочь:

-использовал XML-файл для настройки пользовательского интерфейса (и, насколько я могу судить, делал это в коде не помогает)

- та же проблема, когда я пытаюсь загрузить новую текстуру с SD-карты в отдельной программе. Я могу заставить первую текстуру работать нормально, но при использовании того же метода для загрузки второй я получаю ту же ошибку и ничего не меняется.

5
задан Frank 27 August 2010 в 21:05
поделиться