[Mesa-dev] [PATCH 034/101] mesa: add bind_vertex_array() helper

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Jul 21 17:39:43 UTC 2017


Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
---
 src/mesa/main/arrayobj.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c
index af6a17daec..fcc7990ef0 100644
--- a/src/mesa/main/arrayobj.c
+++ b/src/mesa/main/arrayobj.c
@@ -392,12 +392,10 @@ _mesa_all_buffers_are_unmapped(const struct gl_vertex_array_object *vao)
 /**
  * ARB version of glBindVertexArray()
  */
-void GLAPIENTRY
-_mesa_BindVertexArray( GLuint id )
+static ALWAYS_INLINE void
+bind_vertex_array(struct gl_context *ctx, GLuint id, bool no_error)
 {
-   GET_CURRENT_CONTEXT(ctx);
-
-   struct gl_vertex_array_object * const oldObj = ctx->Array.VAO;
+   struct gl_vertex_array_object *const oldObj = ctx->Array.VAO;
    struct gl_vertex_array_object *newObj = NULL;
 
    assert(oldObj != NULL);
@@ -417,7 +415,7 @@ _mesa_BindVertexArray( GLuint id )
    else {
       /* non-default array object */
       newObj = _mesa_lookup_vao(ctx, id);
-      if (!newObj) {
+      if (!no_error && !newObj) {
          _mesa_error(ctx, GL_INVALID_OPERATION,
                      "glBindVertexArray(non-gen name)");
          return;
@@ -446,6 +444,14 @@ _mesa_BindVertexArray( GLuint id )
 }
 
 
+void GLAPIENTRY
+_mesa_BindVertexArray(GLuint id)
+{
+   GET_CURRENT_CONTEXT(ctx);
+   bind_vertex_array(ctx, id, false);
+}
+
+
 /**
  * Delete a set of array objects.
  *
-- 
2.13.3



More information about the mesa-dev mailing list