2012-04-02 56 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