TextureView vs. GLSurfaceView o cómo usar GLSurfaceView con EGL14
Me estoy confundiendo con EGL.
Mi GLSurfaceView crea un EGLContext. Ahora creo un contexto compartido. Ahora necesito usar una extensión EGLE.
El método que tengo que usar se llama (> = API18):
EGLExt.eglPresentationTimeANDROID(android.opengl.EGLDisplay display, android.opengl.EGLSurface surface, long time);
El problema es que GLSurfaceView solo crea javax.microedition.khronos.egl.EGLContext s.
Lo que me dice, NO usar GLSurfaceView. Así que probé TextureView, que es ligeramente similar, con la diferencia de que tienes que manejar tus propias cosas de EGL. Lo cual es bueno para ese propósito.
Pero: El TextureView es más lento, al menos se veía así, así que registré algunos diagramas con el Perfilador de métodos:
Aquí el TextureView con manejo propio de EGL: El hilo en la parte superior es un reloj que despierta el hilo en el centro, que se reproduce en el TextureView. El hilo principal se llamará después de eso, para volver a dibujar el TextureView.
... y aquí el GLSurfaceView con su propio manejo de EGL El reloj está en el medio esta vez, llama al Thread en la parte superior para renderizar mi imagen en un framebuffer, que entrego directamente en SurfaceView (RENDERMODE_WHEN_DIRTY) y llamé a requestRender para Solicita la vista para renderizar.
Como se puede ver con una mirada breve, con GLSurfaceView se ve mucho más limpio que con TextureView.
En ambos ejemplos, no he tenido nada más en la pantalla y han renderizado exactamente las mismas mallas con el mismo sombreado.
A mi pregunta: ¿Hay alguna forma de usar GLSurfaceView con los contextos EGL14?
¿Hice algo mal?