2011-05-08 33 views
8

我在查看android ndk的示例。無論如何,它在那裏的線路:eglCreateContext中的屬性列表

int[] attrib_list = {EGL_CONTEXT_CLIENT_VERSION, 2, EGL10.EGL_NONE }; 
EGLContext context = egl.eglCreateContext(display, eglConfig, EGL10.EGL_NO_CONTEXT, attrib_list); 

凡EGL_CONTEXT_CLIENT_VERSION被定義爲:

private static int EGL_CONTEXT_CLIENT_VERSION = 0x3098; 

我已經打算在API for that call,和它說的是,最後一個參數是屬性列表。但是,我似乎無法找到任何實際上給予你可能想放在那裏的屬性的東西,甚至也不能解釋這個例子放在那裏的兩個屬性。誰能告訴我這些屬性是什麼意思? (或者更好的是,也可以指出一些解釋它的文檔)。

謝謝

編輯:我只是意識到,一點上下文會有所幫助。特定的樣品在samples/hello-gl2中。該文件位於視圖類中,特別是ContextFactory靜態類。

+0

我還沒有找到「正確的」信息,但我已經總結了兩個參數。首先是要分配值的屬性ID,然後是值。在這種情況下,你告訴context客戶端版本應該是2.爲什麼最後的值總是EGL10.EGL_NONE對我來說都是小溪。無論如何,這裏有一個[鏈接](http://gdc2011-android-opengl.googlecode.com/svn/trunk/src/com/example/gdc11/MultisampleConfigChooser.java),一旦我讀到它,就會對此主題有所瞭解。 – harism 2011-05-08 21:24:43

回答

8

檢查spec,43頁:

attrib list可以是NULL或空 (第一屬性是EGL_NONE),在 這種情況下,屬性假定其 默認值,如下所述。

EGL_CONTEXT_CLIENT_VERSION 確定要創建的ES上下文的哪個版本的OpenGL 。 1的值 的屬性指定創建OpenGL ES 1.x上下文。屬性 的值2指定創建OpenGL ES 2.x上下文。 EGL_CONTEXT_CLIENT_VERSION 的默認 值爲1

+0

有道理,謝謝。雖然他們是如何知道將其設置爲0x3098,這只是特定於android的東西?謝謝。 – 2011-05-09 00:36:34

+3

@Lief:我想他們是從[官方包含文件](http://www.khronos.org/registry/egl/api/EGL/egl.h)取得的。 – genpfault 2011-05-09 01:30:33

+0

@genpfault儘管它們不會在它們的Java包裝的常量類「android.opengl.EGL14」中包含常量,這很奇怪。 – nmr 2013-10-17 18:18:17