2011-06-28 10 views
14

(experimentado c programador, pre-shader, función fija gl abierto. Programador de Java competente)EGL vs GLES 2.0 en Android (por ejemplo, Java)

He estado trabajando con GLES en Android y han conseguido los ejemplos para ejecutar (tanto nativo como Java). En particular, el ejemplo del triángulo texturizado. Lo que me confunde completamente es la "relación" de Khronos EGL y las interfaces de Android GLES.

¿Están estas interfaces paralelas e independientes (API)? ¿Se supone que EGL es una interfaz independiente de la plataforma (neutral)? EGL parece ser totalmente compatible con GLES 1.0 y 1.1, pero no es compatible con ES 2.0 (en Android)?

Por lo tanto, me parece que EGL es supuesta ser una interfaz paralela neutra, PERO plataforma que no es totalmente compatible GLES 2.0 (en Android); Entonces, si estás escribiendo el código GLES 2.0 (en Android), es mejor que simplemente uses la API GLxxx en lugar de la API EGLxxx (y tener que recurrir a la API GLxxx de todos modos). Por lo que puedo decir, no>TIENEN < para usar EGL para nada, ya que solo admite un subconjunto de la API ES 2.0.

(Todos los ejemplos/libro/de referencia, bien a mezclar las dos, utiliza la interfaz nativa o utiliza sólo EGL 1.1 Características; me estoy perdiendo algo fundamental aquí?)

Respuesta

21

EGL es un complemento de OpenGL ES. EGL se usa para hacer que las superficies se procesen usando funciones como eglCreateWindowSurface, y luego puede dibujar en esa superficie con OpenGL ES. Su función es similar a GLX/WGL/CGL.

Independientemente de si EGL puede darle un contexto que admite OpenGL ES 2.0 puede variar según la plataforma, pero si el dispositivo Android es compatible con ES 2.0 y EGL, debe poder obtener dicho contexto de EGL. Eche un vistazo al atributo EGL_RENDERABLE_TYPE y al EGL_OPENGL_ES2_BIT cuando solicite un EGLConfig.

http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf

+0

Gracias por la respuesta y el enlace, tengo la referencia de ES. tarjeta, pero no el EGL. He publicado una pregunta de seguimiento más específica [aquí] (http://stackoverflow.com/questions/6510964/how-to-get-an-egl-display-context-to-a-specific-glsurfaceview) – Vanderdeckken

+0

@ Vanderdeckken Y asegúrese de votar (e incluso aceptar) esta respuesta si contestó correctamente su pregunta. –

14

EGL en Android no parece explicarse adecuadamente en cualquier lugar, pero preparado una serie de notas here que esperemos que aclarar las cosas.

Cuestiones relacionadas