2011-06-28 71 views
14

(有經驗的C程序員,預着色器,固定功能的Open GL。主管Java程序員)EGL VS Android上GLES 2.0(例如,Java)

我一直在與GLES在Android和已經得到運行示例(本地和Java)。特別是紋理三角形的例子。令我困惑的是Khronos EGL和android GLES接口的「關係」。

這些並行,獨立的接口(API)? EGL應該是一個獨立於平臺的(中性)接口嗎? EGL似乎完全支持GLES 1.0和1.1,但不支持ES 2.0(在Android上)?

所以,在我看來,EGL是應該是一箇中立的平臺,並行接口,它不完全支持GLES 2.0(Android上的);因此,如果您正在編寫GLES 2.0代碼(在Android上),則最好使用GLxxx API而不是EGLxxx API(並且不得不依賴GLxxx API)。據我所知,你不要> <使用EGL的任何東西,因爲它只支持ES 2.0 API的一個子集。

(每個實例/電子書/引用或者混合兩組,採用原生界面或者僅使用EGL 1.1功能,我失去了一些基本的東西在這裏嗎?)

回答

21

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

+0

感謝您的答覆和鏈接,我有ES參考。卡而不是EGL。我發佈了一個更具體的後續問題[here](http://stackoverflow.com/questions/6510964/how-to-get-an-egl-display-context-to-a-specific-glsurfaceview) – Vanderdeckken

+0

@範德克肯如果它正確地回答了你的問題,那麼一定要投票(甚至接受)這個答案。 –

14

似乎EGL Android上並沒有在任何地方適當解釋,但我把一些注意事項here其希望應該澄清的事情。