[Mesa-dev] [PATCH 6/8] mesa: fix error handling for glMaterial*
Ian Romanick
idr at freedesktop.org
Mon Sep 19 11:17:17 PDT 2011
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 09/19/2011 12:03 AM, Yuanhan Liu wrote:
> Trigger GL_INVALID_ENUM error if the face paramter is not a valid
> value.
>
> Trigger GL_INVALID_VALUE error if the GL_SHININESS value is out
> side [0,128].
>
> Signed-off-by: Yuanhan Liu <yuanhan.liu at linux.intel.com> ---
> src/mesa/vbo/vbo_attrib_tmp.h | 10 +++++++++- 1 files changed, 9
> insertions(+), 1 deletions(-)
>
> diff --git a/src/mesa/vbo/vbo_attrib_tmp.h
> b/src/mesa/vbo/vbo_attrib_tmp.h index 65717eb..c79bfc2 100644 ---
> a/src/mesa/vbo/vbo_attrib_tmp.h +++
> b/src/mesa/vbo/vbo_attrib_tmp.h @@ -795,6 +795,11 @@
> TAG(VertexAttrib4fvNV)(GLuint index, const GLfloat * v)
>
> #define MAT( ATTR, N, face, params ) \ do { \ + if (face
> != GL_FRONT && face != GL_BACK && \ + face !=
> GL_FRONT_AND_BACK) { \ + _mesa_error(ctx,
> GL_INVALID_ENUM, "Invalid value for parameter face"); \ +
> break; \ + }
> \ if (face != GL_BACK) \ MAT_ATTR( ATTR, N, params ); /* front
> */ \ if (face != GL_FRONT) \ @@ -823,7 +828,10 @@
> TAG(Materialfv)(GLenum face, GLenum pname,
> MAT(VBO_ATTRIB_MAT_FRONT_SPECULAR, 4, face, params); break; case
> GL_SHININESS: - MAT(VBO_ATTRIB_MAT_FRONT_SHININESS, 1, face,
> params); + if (*params < 0 || *params > 128) +
> _mesa_error(ctx, GL_INVALID_VALUE, "GL_SHININESS value out side
> [0,128]");
This should check ctx->Const.MaxShininess instead of 128. Since Mesa
supports GL_NV_light_max_exponent, the valid maximum can be larger
than 128.
> + else + MAT(VBO_ATTRIB_MAT_FRONT_SHININESS, 1, face,
> params); break; case GL_COLOR_INDEXES:
> MAT(VBO_ATTRIB_MAT_FRONT_INDEXES, 3, face, params);
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk53hywACgkQX1gOwKyEAw88CACdHUVywIN0ttRraCLTiAEYbI2/
l6wAn2MwzOqz1ZfAzEpDGkkow+LG3lZv
=F77M
-----END PGP SIGNATURE-----
More information about the mesa-dev
mailing list