GL_OES_vertex_array_object - vertex array objects, glBindVertexArrayOES()

198 views
Skip to first unread message

pem....@gmail.com

unread,
Sep 15, 2015, 10:21:00 PM9/15/15
to angleproject
Does ANGLE support vertex array objects?  And if not, then why?  And when will it be added?

If it's not any time soon, then is there some way (a work-around) I can do to use vertex array objects with ANGLE on Windows?

Angle includes the following in angleproject/include/GLES2/glext.h:

/* 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

So in my project, I did this:

#define GL_GLEXT_PROTOTYPES
#include <GLES2/gl2.h>
#include <GLES2/gl2platform.h>
#include <GLES2/gl2ext.h>

This enables my project to build using glBindVertexArrayOES() etc, but it fails when on link due to unresolved external symbol.  Using dependency walker, I can see that "angleproject\lib\Release\libGLESv2.dll" does not contain glBindVertexArrayOES() etc.

This page ( https://code.google.com/p/angleproject/wiki/ExtensionSupport ) does not list GL_OES_vertex_array_object, so I'm beginning to think ANGLE does not support vertex array objects yet.

I'm surprised to see this post ( http://blog.tojicode.com/2012/10/oesvertexarrayobject-extension.html ) from an alleged Google employee saying on 2012/10/02 (that's 3 years ago!) that he added GL_OES_vertex_array_object to Chrome WebGL, but not to ANGLE.  Then a comment 2014/06/23 (1 year 3 months ago) says "its already there".

Geoff Lang

unread,
Sep 15, 2015, 10:29:53 PM9/15/15
to pem....@gmail.com, angleproject
ANGLE does not support the GL_OES_vertex_array_object extension, only the core vertex array objects in ES3.  To check extension support, you should always be checking the extension strings reported by the context and not assuming support based on platform. I would suggest you make sure your project can fall back to simply binding attributes and buffers to be the most portable.

Chrome adds vertex array object support in a layer above ANGLE because vertex array objects are simply state tracking wrappers around vertex attribute and element array buffer state.  

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages