Я новичок как в openGL, так и в разработке для Android, поэтому, пожалуйста, простите меня, если мой вопрос очень тривиален.
Я пытаюсь создать простое небольшое приложение, которое получает данные от пользователя в трех EditTexts, представляющих значение 0 - 100% для каждого компонента цвета RGB, который будет отображаться в GLSurfaceView.
Загвоздка в том, что мне нужно это для использования openGL ES 2.0, и мне нужно передать данные в программу затенения, используя единообразное значение, чтобы, как только я начал работать, я мог перейти к тому, что я действительно пытаюсь выполнить.
Запустив то, что я написал, я могу заставить GLSurfaceView правильно отображать первый сплошной цвет, но всякий раз, когда я изменяю любое из значений и выполняю вызовы для восстановления единого слота в программе затенения, я получаю эту ошибку в LogCat:
ОШИБКА / libEGL (14316): вызов API OpenGL ES без текущего контекста (регистрируется один раз для потока)
и, конечно, GLSurfaceView остается исходным цветом.
Я искал решение этой проблемы во всем, и, насколько я могу судить, мне может понадобиться настроить EGLContext где-то перед настройкой моего рендерера. Однако в демоверсиях API я ничего не вижу по этому поводу, и единственная информация, которую я могу найти в Интернете, была написана еще до того, как GLSurfaceView был доступен.
Нужно ли еще настраивать EGLContext или я что-то пропустил?
Дополнительная информация, которая может помочь:
- использовал XML-файл для настройки пользовательского интерфейса (и, насколько я могу судить, делать это в коде не помогает)
- возникают те же проблемы, когда я пытаюсь загрузить новую текстуру с SD-карты в отдельной программе. Я могу заставить первую текстуру работать нормально, но при использовании того же метода для загрузки второй я получаю ту же ошибку, и ничего не меняется.