diff options
Diffstat (limited to 'src/mesa/main/arrayobj.c')
-rw-r--r-- | src/mesa/main/arrayobj.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/mesa/main/arrayobj.c b/src/mesa/main/arrayobj.c index 0f474243a78..2810647c7e7 100644 --- a/src/mesa/main/arrayobj.c +++ b/src/mesa/main/arrayobj.c @@ -433,20 +433,17 @@ bind_vertex_array(struct gl_context *ctx, GLuint id, bool no_error) newObj->EverBound = GL_TRUE; } - if (ctx->Array.DrawMethod == DRAW_ARRAYS) { - /* The _DrawArrays pointer is pointing at the VAO being unbound and - * that VAO may be in the process of being deleted. If it's not going - * to be deleted, this will have no effect, because the pointer needs - * to be updated by the VBO module anyway. - * - * Before the VBO module can update the pointer, we have to set it - * to NULL for drivers not to set up arrays which are not bound, - * or to prevent a crash if the VAO being unbound is going to be - * deleted. - */ - ctx->Array._DrawArrays = NULL; - ctx->Array.DrawMethod = DRAW_NONE; - } + /* The _DrawArrays pointer is pointing at the VAO being unbound and + * that VAO may be in the process of being deleted. If it's not going + * to be deleted, this will have no effect, because the pointer needs + * to be updated by the VBO module anyway. + * + * Before the VBO module can update the pointer, we have to set it + * to NULL for drivers not to set up arrays which are not bound, + * or to prevent a crash if the VAO being unbound is going to be + * deleted. + */ + _mesa_set_drawing_arrays(ctx, NULL); ctx->NewState |= _NEW_ARRAY; _mesa_reference_vao(ctx, &ctx->Array.VAO, newObj); |