[Mesa-dev] [PATCH 07/12] mesa/es: Validate ColorPointer size in Mesa code rather than the ES wrapper

Ian Romanick idr at freedesktop.org
Wed Aug 22 19:26:20 PDT 2012


From: Ian Romanick <ian.d.romanick at intel.com>

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
 src/mesa/main/APIspec.xml |    4 ----
 src/mesa/main/varray.c    |    3 ++-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
index 5201647..3d5f521 100644
--- a/src/mesa/main/APIspec.xml
+++ b/src/mesa/main/APIspec.xml
@@ -1218,10 +1218,6 @@
 		<param name="stride" type="GLsizei"/>
 		<param name="pointer" type="const GLvoid *"/>
 	</proto>
-
-	<desc name="size" error="GL_INVALID_VALUE">
-		<value name="4"/>
-	</desc>
 </template>
 
 <template name="DisableClientState">
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
index da7d36b..815ab99 100644
--- a/src/mesa/main/varray.c
+++ b/src/mesa/main/varray.c
@@ -288,10 +288,11 @@ _mesa_ColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr)
          HALF_BIT | FLOAT_BIT | DOUBLE_BIT |
          UNSIGNED_INT_2_10_10_10_REV_BIT |
          INT_2_10_10_10_REV_BIT);
+   const GLint sizeMin = (ctx->API == API_OPENGLES) ? 4 : 3;
    ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
 
    update_array(ctx, "glColorPointer", VERT_ATTRIB_COLOR0,
-                legalTypes, 3, BGRA_OR_4,
+                legalTypes, sizeMin, BGRA_OR_4,
                 size, type, stride, GL_TRUE, GL_FALSE, ptr);
 }
 
-- 
1.7.6.5



More information about the mesa-dev mailing list