intel: Flag _NEW_ARRAY state when doing array object binding in clears.
authorEric Anholt <eric@anholt.net>
Tue, 14 Jul 2009 18:51:17 +0000 (11:51 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 14 Jul 2009 22:14:51 +0000 (15:14 -0700)
This is just following bind_vertex_array()'s behavior.

src/mesa/drivers/dri/intel/intel_clear.c

index 273856f..0d0cf39 100644 (file)
@@ -86,6 +86,8 @@ init_clear(GLcontext *ctx)
 
    /* save current array object, bind new one */
    _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
+   ctx->NewState |= _NEW_ARRAY;
+   ctx->Array.NewState |= _NEW_ARRAY_ALL;
    _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, intel->clear.arrayObj);
 
    /* one-time setup of vertex arrays (pos, color) */
@@ -97,6 +99,8 @@ init_clear(GLcontext *ctx)
    _mesa_Enable(GL_VERTEX_ARRAY);
 
    /* restore original array object */
+   ctx->NewState |= _NEW_ARRAY;
+   ctx->Array.NewState |= _NEW_ARRAY_ALL;
    _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
    _mesa_reference_array_object(ctx, &arraySave, NULL);
 
@@ -192,6 +196,8 @@ intel_clear_tris(GLcontext *ctx, GLbitfield mask)
 
    /* save current array object, bind our private one */
    _mesa_reference_array_object(ctx, &arraySave, ctx->Array.ArrayObj);
+   ctx->NewState |= _NEW_ARRAY;
+   ctx->Array.NewState |= _NEW_ARRAY_ALL;
    _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, intel->clear.arrayObj);
 
    intel_meta_set_passthrough_transform(intel);
@@ -283,6 +289,8 @@ intel_clear_tris(GLcontext *ctx, GLbitfield mask)
    _mesa_PopAttrib();
 
    /* restore current array object */
+   ctx->NewState |= _NEW_ARRAY;
+   ctx->Array.NewState |= _NEW_ARRAY_ALL;
    _mesa_reference_array_object(ctx, &ctx->Array.ArrayObj, arraySave);
    _mesa_reference_array_object(ctx, &arraySave, NULL);
 }