cogl: Record new enabled arrays in _cogl_disable_other_texcoord_arrays
authorNeil Roberts <neil@linux.intel.com>
Thu, 27 May 2010 13:51:44 +0000 (14:51 +0100)
committerNeil Roberts <neil@linux.intel.com>
Thu, 27 May 2010 13:51:44 +0000 (14:51 +0100)
When _cogl_disable_other_texcoord_arrays is called it disables the
neccessary texcoord arrays and then removes the bits for the disabled
arrays in ctx->texcoord_arrays_enabled. However none of the places
that call the function then set any bits in ctx->texcoord_arrays_enabled
so the arrays would never get marked and they would never get disabled
again.

This patch just changes it so that _cogl_disable_other_texcoord_arrays
also sets the corresponding bits in ctx->texcoord_arrays_enabled.

clutter/cogl/cogl/cogl-internal.h
clutter/cogl/cogl/cogl.c

index c650960..c4169be 100644 (file)
@@ -134,7 +134,8 @@ void
 _cogl_flush_face_winding (void);
 
 /* Disables the texcoord arrays that don't have a corresponding bit
-   set in the mask */
+   set in the mask and sets ctx->texcoord_arrays_enabled to mask. Note
+   that it doesn't enable any extra texcoord arrays */
 void
 _cogl_disable_other_texcoord_arrays (const CoglBitmask *mask);
 
index eab2d12..41dfa53 100644 (file)
@@ -790,6 +790,7 @@ _cogl_disable_other_texcoord_arrays (const CoglBitmask *mask)
   /* Update the mask of arrays that are enabled */
   _cogl_bitmask_clear_bits (&ctx->texcoord_arrays_enabled,
                             &ctx->texcoord_arrays_to_disable);
+  _cogl_bitmask_set_bits (&ctx->texcoord_arrays_enabled, mask);
 }
 
 void