I think it's a standard header with switches turned on for what is implemented. When I was looking for Vertex Array Objects I found this in the header
Code: Select all
/* GL_OES_vertex_array_object */
#ifndef GL_OES_vertex_array_object
#define GL_OES_vertex_array_object 1
#ifdef GL_GLEXT_PROTOTYPES
GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
#endif
typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
#endif
However GL_OES_vertex_array_object was undefined in the main platform header and if you try to define it linking fails If you run nm on the static lib you will see that they are not there.
I think the simplest way of seeing what is implemented is to use the following
Code: Select all
nm --demangle=gnu /opt/vc/lib/libGLESv2_static.a | c++filt
On my build on the static lib has the symbols in as the dynamic seems to have been striped (latest wheezy beta)
Jon