TextureView vs. GLSurfaceView ou Como usar o GLSurfaceView com EGL14
Estou ficando confuso com o EGL.
Meu GLSurfaceView cria um EGLContext. Agora eu crio um contexto compartilhado. Agora eu preciso usar uma EGLExtension.
O método que eu tenho que usar é chamado (> = API18):
EGLExt.eglPresentationTimeANDROID(android.opengl.EGLDisplay display, android.opengl.EGLSurface surface, long time);
O problema é que o GLSurfaceView cria apenas javax.microedition.khronos.egl.EGLContext s.
O que me diz, para não usar GLSurfaceView. Então, tentei o TextureView, que é um pouco semelhante, com a diferença de que você precisa lidar com o seu próprio material EGL. O que é bom para esse fim.
Mas: O TextureView é mais lento, pelo menos parecia assim, então eu gravei alguns diagramas com o Method Profiler:
Aqui o TextureView com o próprio EGL Handling: O Thread na parte superior é um relógio que ativa o Thread no meio, que é renderizado no TextureView. O Thread principal será chamado depois disso, para redesenhar o TextureView.
... e aqui o GLSurfaceView com seu próprio tratamento de EGL O relógio está no meio desta vez, ele chama o Thread na parte superior para renderizar minha imagem em um framebuffer, que eu dou diretamente no SurfaceView (RENDERMODE_WHEN_DIRTY) e chamo requestRender para solicite a exibição para renderizar.
Como você pode ver com uma breve olhada, já que com o GLSurfaceView parece muito mais limpo que com o TextureView.
Nos dois exemplos, não havia mais nada na tela e eles renderizaram exatamente as mesmas malhas com o mesmo sombreador.
À minha pergunta: Existe uma maneira de usar o GLSurfaceView com os contextos EGL14?
Fiz algo de errado?