diff options
author | Kenneth Graunke <[email protected]> | 2012-11-07 20:29:40 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-11-08 22:53:54 -0800 |
commit | c299f44782d7d7d6719fce622a121aad58856139 (patch) | |
tree | 085b59ae5008c00a57b3b57e8142bc5b636e544e /src/mesa/main | |
parent | 6ccfa1c5430542509c1946c72a7109fe53bbbcbf (diff) |
mesa: Fix glGetVertexAttribI[u]iv now that we have real integer attribs.
Since cf438f5375e242, we store actual integers for the attribute data.
We just need to reinterpret the GLfloat array as a GLint/GLuint array
so we can read the proper data.
Fixes oglconform's glsl-vertex-attrib/basic.VertexAttribI[1234][u]i
subtests (after fixing an unrelated bug in those test cases).
v2: Use the COPY_4V macro to be concise.
NOTE: This is a candidate for the stable branches.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Marek Olšák <[email protected]> [v1]
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/varray.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c index 522f5a7042c..3974787b4fa 100644 --- a/src/mesa/main/varray.c +++ b/src/mesa/main/varray.c @@ -701,14 +701,10 @@ _mesa_GetVertexAttribIiv(GLuint index, GLenum pname, GLint *params) ASSERT_OUTSIDE_BEGIN_END(ctx); if (pname == GL_CURRENT_VERTEX_ATTRIB_ARB) { - const GLfloat *v = + const GLint *v = (const GLint *) get_current_attrib(ctx, index, "glGetVertexAttribIiv"); if (v != NULL) { - /* XXX we don't have true integer-valued vertex attribs yet */ - params[0] = (GLint) v[0]; - params[1] = (GLint) v[1]; - params[2] = (GLint) v[2]; - params[3] = (GLint) v[3]; + COPY_4V(params, v); } } else { @@ -726,14 +722,10 @@ _mesa_GetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params) ASSERT_OUTSIDE_BEGIN_END(ctx); if (pname == GL_CURRENT_VERTEX_ATTRIB_ARB) { - const GLfloat *v = + const GLuint *v = (const GLuint *) get_current_attrib(ctx, index, "glGetVertexAttribIuiv"); if (v != NULL) { - /* XXX we don't have true integer-valued vertex attribs yet */ - params[0] = (GLuint) v[0]; - params[1] = (GLuint) v[1]; - params[2] = (GLuint) v[2]; - params[3] = (GLuint) v[3]; + COPY_4V(params, v); } } else { |