diff options
-rw-r--r-- | src/mesa/main/points.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index 30bd7b89522..095e2a3d707 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -40,12 +40,17 @@ * \param size point diameter in pixels * \sa glPointSize(). */ -static void -point_size(struct gl_context *ctx, GLfloat size) +static ALWAYS_INLINE void +point_size(struct gl_context *ctx, GLfloat size, bool no_error) { if (ctx->Point.Size == size) return; + if (!no_error && size <= 0.0F) { + _mesa_error(ctx, GL_INVALID_VALUE, "glPointSize"); + return; + } + FLUSH_VERTICES(ctx, _NEW_POINT); ctx->Point.Size = size; @@ -58,7 +63,7 @@ void GLAPIENTRY _mesa_PointSize_no_error(GLfloat size) { GET_CURRENT_CONTEXT(ctx); - point_size(ctx, size); + point_size(ctx, size, true); } @@ -66,13 +71,7 @@ void GLAPIENTRY _mesa_PointSize( GLfloat size ) { GET_CURRENT_CONTEXT(ctx); - - if (size <= 0.0F) { - _mesa_error( ctx, GL_INVALID_VALUE, "glPointSize" ); - return; - } - - point_size(ctx, size); + point_size(ctx, size, false); } |