X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fpoints.c;h=095e2a3d707dd42b5d68456155c700cfada78d17;hb=47cf310a671b75b1552a7b5d8accc8baa8ecdefb;hp=c2f2b6399cb28efb6ab96970f362b79d94613466;hpb=47fae842d01331af5acc56ff8db37c09ceca791f;p=mesa.git diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index c2f2b6399cb..095e2a3d707 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -40,18 +40,16 @@ * \param size point diameter in pixels * \sa glPointSize(). */ -void GLAPIENTRY -_mesa_PointSize( GLfloat size ) +static ALWAYS_INLINE void +point_size(struct gl_context *ctx, GLfloat size, bool no_error) { - GET_CURRENT_CONTEXT(ctx); - - if (size <= 0.0F) { - _mesa_error( ctx, GL_INVALID_VALUE, "glPointSize" ); + if (ctx->Point.Size == size) return; - } - if (ctx->Point.Size == size) + if (!no_error && size <= 0.0F) { + _mesa_error(ctx, GL_INVALID_VALUE, "glPointSize"); return; + } FLUSH_VERTICES(ctx, _NEW_POINT); ctx->Point.Size = size; @@ -61,6 +59,22 @@ _mesa_PointSize( GLfloat size ) } +void GLAPIENTRY +_mesa_PointSize_no_error(GLfloat size) +{ + GET_CURRENT_CONTEXT(ctx); + point_size(ctx, size, true); +} + + +void GLAPIENTRY +_mesa_PointSize( GLfloat size ) +{ + GET_CURRENT_CONTEXT(ctx); + point_size(ctx, size, false); +} + + void GLAPIENTRY _mesa_PointParameteri( GLenum pname, GLint param ) { @@ -225,8 +239,6 @@ _mesa_PointParameterfv( GLenum pname, const GLfloat *params) void _mesa_init_point(struct gl_context *ctx) { - GLuint i; - ctx->Point.SmoothFlag = GL_FALSE; ctx->Point.Size = 1.0; ctx->Point.Params[0] = 1.0; @@ -253,7 +265,5 @@ _mesa_init_point(struct gl_context *ctx) ctx->Point.SpriteRMode = GL_ZERO; /* GL_NV_point_sprite (only!) */ ctx->Point.SpriteOrigin = GL_UPPER_LEFT; /* GL_ARB_point_sprite */ - for (i = 0; i < ARRAY_SIZE(ctx->Point.CoordReplace); i++) { - ctx->Point.CoordReplace[i] = GL_FALSE; /* GL_ARB/NV_point_sprite */ - } + ctx->Point.CoordReplace = 0; /* GL_ARB/NV_point_sprite */ }