mesa: add delete_vertex_arrays() helper
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 18 Jul 2017 16:17:35 +0000 (18:17 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 31 Jul 2017 11:53:39 +0000 (13:53 +0200)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mesa/main/arrayobj.c

index 77c0206ecfdf58409fbdbfa872686ae3b7ac7480..2c95b001a25270a4d8218538414467f9e7e58c94 100644 (file)
@@ -466,17 +466,11 @@ _mesa_BindVertexArray(GLuint id)
  * \param n      Number of array objects to delete.
  * \param ids    Array of \c n array object IDs.
  */
-void GLAPIENTRY
-_mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
+static void
+delete_vertex_arrays(struct gl_context *ctx, GLsizei n, const GLuint *ids)
 {
-   GET_CURRENT_CONTEXT(ctx);
    GLsizei i;
 
-   if (n < 0) {
-      _mesa_error(ctx, GL_INVALID_VALUE, "glDeleteVertexArray(n)");
-      return;
-   }
-
    for (i = 0; i < n; i++) {
       struct gl_vertex_array_object *obj = _mesa_lookup_vao(ctx, ids[i]);
 
@@ -488,7 +482,7 @@ _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
           * becomes current."
           */
          if (obj == ctx->Array.VAO)
-            _mesa_BindVertexArray(0);
+            _mesa_BindVertexArray_no_error(0);
 
          /* The ID is immediately freed for re-use */
          _mesa_HashRemoveLocked(ctx->Array.Objects, obj->Name);
@@ -505,6 +499,20 @@ _mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
 }
 
 
+void GLAPIENTRY
+_mesa_DeleteVertexArrays(GLsizei n, const GLuint *ids)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (n < 0) {
+      _mesa_error(ctx, GL_INVALID_VALUE, "glDeleteVertexArray(n)");
+      return;
+   }
+
+   delete_vertex_arrays(ctx, n, ids);
+}
+
+
 /**
  * Generate a set of unique array object IDs and store them in \c arrays.
  * Helper for _mesa_GenVertexArrays() and _mesa_CreateVertexArrays()