/*
* Mesa 3-D graphics library
- * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* \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.0) {
- _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 )
{
* If point parameters aren't supported, then this function shouldn't even
* exist.
*/
- ASSERT(!(ctx->Extensions.ARB_point_sprite
+ assert(!(ctx->Extensions.ARB_point_sprite
|| ctx->Extensions.NV_point_sprite)
|| ctx->Extensions.EXT_point_parameters);
return;
FLUSH_VERTICES(ctx, _NEW_POINT);
COPY_3V(ctx->Point.Params, params);
- ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0 ||
- ctx->Point.Params[1] != 0.0 ||
- ctx->Point.Params[2] != 0.0);
+ ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0F ||
+ ctx->Point.Params[1] != 0.0F ||
+ ctx->Point.Params[2] != 0.0F);
break;
case GL_POINT_SIZE_MIN_EXT:
if (params[0] < 0.0F) {
}
if (ctx->Driver.PointParameterfv)
- (*ctx->Driver.PointParameterfv)(ctx, pname, params);
+ ctx->Driver.PointParameterfv(ctx, pname, 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;
ctx->Point.SpriteRMode = GL_ZERO; /* GL_NV_point_sprite (only!) */
ctx->Point.SpriteOrigin = GL_UPPER_LEFT; /* GL_ARB_point_sprite */
- for (i = 0; i < Elements(ctx->Point.CoordReplace); i++) {
- ctx->Point.CoordReplace[i] = GL_FALSE; /* GL_ARB/NV_point_sprite */
- }
+ ctx->Point.CoordReplace = 0; /* GL_ARB/NV_point_sprite */
}