(经验丰富的c程序员,预着色器,固定功能打开gl。称职的Java程序员)
我一直在Android上使用GLES并已运行了示例( native 和Java)。尤其是带纹理的三角形示例。使我完全困惑的是Khronos EGL和android GLES接口(interface)的“关系”。
这些是并行,独立的接口(interface)(API)吗?
EGL是否应该是独立于平台(中性)的接口(interface)?
EGL似乎完全支持GLES 1.0和1.1,但不支持ES 2.0(在Android上)?
因此,在我看来,EGL是,应该假定是平台无关的并行接口(interface),但但并不完全支持 GLES 2.0 (在Android上);因此,如果您要编写GLES 2.0代码(在Android上),则最好只使用GLxxx API而不是EGLxxx API(并且无论如何都必须使用GLxxx API)。据我所知,您不要> HAVE
(每个示例/书/引用都将两者混在一起,使用 native 界面或仅使用EGL 1.1功能;在这里我是否遗漏了一些基本知识?)
最佳答案
EGL是OpenGL ES的补充。 EGL用于使用eglCreateWindowSurface之类的函数获取要渲染的表面,然后可以使用OpenGL ES绘制到该表面。它的作用类似于GLX/WGL/CGL。
EGL是否可以为您提供支持OpenGL ES 2.0的上下文可能会因平台而异,但是如果Android设备支持ES 2.0和EGL,则您应该能够从EGL获得这样的上下文。请求EGLConfig时,请查看EGL_RENDERABLE_TYPE属性和EGL_OPENGL_ES2_BIT。
http://www.khronos.org/files/egl-1-4-quick-reference-card.pdf
关于android - Android(例如Java)上的EGL vs GLES 2.0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6509588/