Я столкнулся с проблемой невозможности повторного использования текущего EGLContext при попытке отобразить то, что было на экране в GLSurfaceView, за пределами экрана EGLPixelBufferSurface. Из того, что я могу сказать, проблема с использованием статического метода
EGLContext.getEgl()
означает, что он создает экземпляр EGL по умолчанию - это означает, что связанный с ним EGLContext эквивалентен EGL10.EGL_NO_CONTEXT.
Кроме того, в Android EGLContext может быть связан только с одним потоком (Android-разработчик Ромэн Гай так говорит здесь ). Таким образом, чтобы правильно использовать
EGL.getCurrentContext()
вам потребуется предварительно существующий экземпляр EGL и вызвать метод getCurrentContext()
в потоке, создавшем EGLContext.
ПРИМЕЧАНИЕ: Android теперь обрабатывает сохранение EGLContext, когда GLThread приостановлен / возобновлен в классе GLSurfaceView (взгляните на метод setPreserveEGLContextOnPause(boolean preserveOnPause)
).