2012-04-02 55 views
1

我正在嘗試使用VertexArray和Android NDK來編譯已經編譯好的項目,並使用其他Open GL ES調用。 爲了這個問題的目的,讓我們單獨討論一下「glGenVertexArrays」。我如何使用'glGenVertexArrays'使用android-ndk

我發現gl2ext.h如下定義:

GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays); 

它背後GL_GLEXT_PROTOTYPES定義來定義。所以我定義它並使用它。它編譯罰款,但我發現鏈接錯誤:未定義的引用,因此它似乎是從庫文件丟失......

所以,後來我嘗試使用下面的typedef在gl2ext.h:

typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays); 

這樣的:

PFNGLGENVERTEXARRAYSOESPROC glGenVertexArrays; 
glGenVertexArrays = (PFNGLGENVERTEXARRAYSOESPROC) eglGetProcAddress("glGenVertexArraysOES"); 

和...什麼都沒有,返回NULL。

我還試圖「glGenVertexArrays」 ......沒事,還是返回NULL

任何想法,將不勝感激。謝謝。

回答

1

您正在嘗試可能支持或可能不支持的OpenGL ES擴展。

http://www.khronos.org/opengles/documentation/opengles1_0/html/glIntro.html

只是因爲它是在標準頭並不意味着Android或任何特定的實現其實有一個API。

+0

是的。檢查從glGetString(GL_EXTENSION)返回的字符串是否包含GL_OES_vertex_array_object。只有它包含時,纔可以使用頂點數組對象。 – 2012-04-02 04:14:23