mesa: Set the "Integer" field of gl_client_array properly.
authorPaul Berry <stereotype441@gmail.com>
Tue, 1 Nov 2011 00:29:17 +0000 (17:29 -0700)
committerPaul Berry <stereotype441@gmail.com>
Wed, 2 Nov 2011 16:29:35 +0000 (09:29 -0700)
This patch ensures that gl_client_array::Integer is properly set to
GL_TRUE for vertex attributes specified using glVertexAttribIPointer,
and to GL_FALSE for vertex attributes specified using
glVertexAttribPointer, so that the vertex attributes can be
interpreted properly by driver back-ends.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/main/arrayobj.c
src/mesa/main/varray.c
src/mesa/vbo/vbo_split_copy.c

index 78f56ab00b7a682d129f446e43202eccc76ee169..1283940f7fd5fffe7497aee58887d98563df4266 100644 (file)
@@ -208,6 +208,7 @@ init_array(struct gl_context *ctx,
    array->Ptr = NULL;
    array->Enabled = GL_FALSE;
    array->Normalized = GL_FALSE;
+   array->Integer = GL_FALSE;
    array->_ElementSize = size * _mesa_sizeof_type(type);
 #if FEATURE_ARB_vertex_buffer_object
    /* Vertex array buffers */
index 13b3405e5acaa3b0c4ecb4e90dc69bb9d44e7e74..f1a57c1f08980f2ed00334667f82e2d3a8392ff2 100644 (file)
@@ -212,6 +212,7 @@ update_array(struct gl_context *ctx,
    array->Stride = stride;
    array->StrideB = stride ? stride : elementSize;
    array->Normalized = normalized;
+   array->Integer = integer;
    array->Ptr = (const GLubyte *) ptr;
    array->_ElementSize = elementSize;
 
index 40906e389177f229a864f5528eb6aba46b3de5cf..4dcf71ef56e9cd0313ce044d1605ededac206453 100644 (file)
@@ -518,6 +518,7 @@ replay_init( struct copy_context *copy )
       dst->Ptr = copy->dstbuf + offset;
       dst->Enabled = GL_TRUE;
       dst->Normalized = src->Normalized; 
+      dst->Integer = src->Integer;
       dst->BufferObj = ctx->Shared->NullBufferObj;
       dst->_ElementSize = src->_ElementSize;
       dst->_MaxElement = copy->dstbuf_size; /* may be less! */