From eabbe5c45f5d05822c5f841628afa4008398d553 Mon Sep 17 00:00:00 2001 From: Mario Kleiner Date: Sun, 7 Oct 2012 03:44:14 +0200 Subject: [PATCH] mesa: Don't glPopAttrib() GL_POINT_SPRITE_COORD_ORIGIN on < OpenGL-2.0 The GL_POINT_BIT state attribute GL_POINT_SPRITE_COORD_ORIGIN is only supported on OpenGL-2.0 or later. Prevent glPopAttrib() from trying to restore it on OpenGL-1.4 implementations which support GL_ARB_POINT_SPRITE, as otherwise the sequence... glPushAttrib(GL_POINT_BIT); glPopAttrib(); throws an GL_INVALID_ENUM error in glPopAttrib(). See also commit f778174ea1e431a7113f12c12beb4aba9e825a9f NOTE: This is a candidate for the 9.0 branch. Signed-off-by: Mario Kleiner Reviewed-by: Kenneth Graunke Reviewed-by: Ian Romanick --- src/mesa/main/attrib.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 49a3ab5b43d..0997e5407fa 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -1149,8 +1149,11 @@ _mesa_PopAttrib(void) if (ctx->Extensions.NV_point_sprite) _mesa_PointParameteri(GL_POINT_SPRITE_R_MODE_NV, ctx->Point.SpriteRMode); - _mesa_PointParameterf(GL_POINT_SPRITE_COORD_ORIGIN, - (GLfloat)ctx->Point.SpriteOrigin); + + if ((ctx->API == API_OPENGL && ctx->Version >= 20) + || ctx->API == API_OPENGL_CORE) + _mesa_PointParameterf(GL_POINT_SPRITE_COORD_ORIGIN, + (GLfloat)ctx->Point.SpriteOrigin); } } break; -- 2.30.2