Cómo obtener una pantalla EGL / contexto a un GLSurfaceView específico
Este es un seguimiento de mi pregunta original , que probablemente fue demasiado amplia (mientras que ésta es probablemente demasiado específica, pero tal vez pueda aplicar el Método de Newton).
Mi situación específica es: OpenGL ES 2.0, en Android, utilizando sólo Java (no código JNI / Native).
- Escena de OpenGL con fondo transparente + widgets nativos por debajo y por encima
- Android OpenGL ES 2.0: El modelo de cubo no sólo está distorsionado (la perspectiva es incorrecta?), Sino también las caras se cargan incorrectamente (los vértices no son correctos?)
- OpenGL ES 2.0 vs OpenGL 3 - Similitudes y diferencias
- Cómo renderizar la imagen de la cámara YUV-NV21 de Android en el fondo en libgdx con OpenGLES 2.0 en tiempo real?
- Parpadeo de la pantalla de OpenGL ES 2.0
Estoy tratando de entender cómo EGL y la implantación GLES de Android trabajan juntos (o no). Tengo problemas porque la interfaz de EGL (API) no parece bien adaptada a Java centrada en Java, Actividad basada en SO.
Como un ejemplo específico: He subclasificado GLSurfaceView y crear una instancia usando un diseño XML y luego usar findViewById()
para recuperar una referencia. Usando este enfoque, tengo el ejemplo del triángulo texturado trabajando (GLES 2.0 en Android 2.2, API nivel 8). Este ejemplo no utiliza EGL. Como ejercicio de aprendizaje quería reescribirlo usando EGL.
Todos los ejemplos que puedo encontrar utilizan eglGetDisplay()
y eglInitialize()
, y crear un contexto en la bocanada de humo negro graso. Ninguno de los ejemplos, referencias y preguntas que he encontrado se aplican específicamente a ES2.0 / EGL / Android / Java. ¿Estoy perdiendo algo por completo? Esta pregunta está relacionada (creo) pero no tiene ninguna respuesta y el ejemplo utilizado en la Guía de Programación ES 2.0 es una implementación C independiente.
- OpenGL ES 2.0 texture2D sesgo / lod
- ¿Dónde se especifica cómo OpenGL ES 2.0 representa los valores de textura flotante en el fragmento shader?
- EglCreateWindowSurface falla con java.lang.IllegalArgumentException
- ¿Por qué glReadPixels da resultados faltados en algunos dispositivos Android más antiguos?
- Cómo implementar gesto multitouch en android
- Error al intentar obtener Alraedy creado Surface y recibir EGLNativeWindowType ya conectado a otro error de API
- ¿Cómo aprender y usar OpenGL ES 2.0? Simplemente no lo entiendo - Qn serio.
- GLSurfaceView onDrawFrame comportamiento de borrado
No hay nada específico de Android para EGL realmente. Cuando se crea una superficie de ventana EGL (eglCreateWindowSurface) se le da una superficie o SurfaceHolder (que un SurfaceView le dará). Esto significa que puede copiar / pegar un ejemplo EGL de C, C ++ o cualquier otro idioma y tenerlo Trabajar en Android en cuestión de minutos. Así es como lo hago 😉
Actualización: Acabo de leer tu otro mensaje. Necesita EGL para inicializar un contexto GLES.
- ¿Cuál es la forma recomendada de crear bibliotecas de Android para su uso en aplicaciones?
- ¿Debería un sitio web móvil tener su propio subdominio?