* \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;
}
+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 )
{
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;
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 */
}