mesa: refactor: move glReadPixels code into new readpix.c file
[mesa.git] / src / mesa / main / points.c
index 2ffb1a421253f133192c8d72854739cc2839e90c..fbedbcb22c497756a6e607f76c0d08070c73bb38 100644 (file)
@@ -5,9 +5,9 @@
 
 /*
  * Mesa 3-D graphics library
- * Version:  6.2
+ * Version:  7.0
  *
- * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2007  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 
 
 /**
- * Set the point size.
- *
- * \param size pointer diameter.
- *
+ * Set current point size.
+ * \param size  point diameter in pixels
  * \sa glPointSize().
- *
- * Verifies the parameter and updates gl_point_attrib::Size. On a change,
- * flushes the vertices, updates the clamped point size and marks the
- * DD_POINT_SIZE flag in __GLcontextRec::_TriangleCaps for the drivers if the
- * size is different from one. Notifies the driver via
- * the dd_function_table::PointSize callback.
  */
 void GLAPIENTRY
 _mesa_PointSize( GLfloat size )
@@ -65,61 +57,40 @@ _mesa_PointSize( GLfloat size )
 
    FLUSH_VERTICES(ctx, _NEW_POINT);
    ctx->Point.Size = size;
-   ctx->Point._Size = CLAMP(size,
-                           ctx->Const.MinPointSize,
-                           ctx->Const.MaxPointSize);
-
-   if (ctx->Point._Size == 1.0F)
-      ctx->_TriangleCaps &= ~DD_POINT_SIZE;
-   else
-      ctx->_TriangleCaps |= DD_POINT_SIZE;
 
    if (ctx->Driver.PointSize)
-      (*ctx->Driver.PointSize)(ctx, size);
+      ctx->Driver.PointSize(ctx, size);
 }
 
 
 #if _HAVE_FULL_GL
 
-/*
- * Added by GL_NV_point_sprite
- */
+
 void GLAPIENTRY
-_mesa_PointParameteriNV( GLenum pname, GLint param )
+_mesa_PointParameteri( GLenum pname, GLint param )
 {
    const GLfloat value = (GLfloat) param;
-   _mesa_PointParameterfvEXT(pname, &value);
+   _mesa_PointParameterfv(pname, &value);
 }
 
 
-/*
- * Added by GL_NV_point_sprite
- */
 void GLAPIENTRY
-_mesa_PointParameterivNV( GLenum pname, const GLint *params )
+_mesa_PointParameteriv( GLenum pname, const GLint *params )
 {
    const GLfloat value = (GLfloat) params[0];
-   _mesa_PointParameterfvEXT(pname, &value);
+   _mesa_PointParameterfv(pname, &value);
 }
 
 
-
-/*
- * Same for both GL_EXT_point_parameters and GL_ARB_point_parameters.
- */
 void GLAPIENTRY
-_mesa_PointParameterfEXT( GLenum pname, GLfloat param)
+_mesa_PointParameterf( GLenum pname, GLfloat param)
 {
-   _mesa_PointParameterfvEXT(pname, &param);
+   _mesa_PointParameterfv(pname, &param);
 }
 
 
-
-/*
- * Same for both GL_EXT_point_parameters and GL_ARB_point_parameters.
- */
 void GLAPIENTRY
-_mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
+_mesa_PointParameterfv( GLenum pname, const GLfloat *params)
 {
    GET_CURRENT_CONTEXT(ctx);
    ASSERT_OUTSIDE_BEGIN_END(ctx);
@@ -127,24 +98,13 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
    switch (pname) {
       case GL_DISTANCE_ATTENUATION_EXT:
          if (ctx->Extensions.EXT_point_parameters) {
-            const GLboolean tmp = ctx->Point._Attenuated;
             if (TEST_EQ_3V(ctx->Point.Params, params))
               return;
-
            FLUSH_VERTICES(ctx, _NEW_POINT);
             COPY_3V(ctx->Point.Params, params);
-
-           /* Update several derived values now.  This likely to be
-            * more efficient than trying to catch this statechange in
-            * state.c.
-            */
-            ctx->Point._Attenuated = (params[0] != 1.0 ||
-                                     params[1] != 0.0 ||
-                                     params[2] != 0.0);
-
-            if (tmp != ctx->Point._Attenuated) {
-               ctx->_TriangleCaps ^= DD_POINT_ATTEN;
-            }
+            ctx->Point._Attenuated = (ctx->Point.Params[0] != 1.0 ||
+                                      ctx->Point.Params[1] != 0.0 ||
+                                      ctx->Point.Params[2] != 0.0);
          }
          else {
             _mesa_error(ctx, GL_INVALID_ENUM,
@@ -260,6 +220,7 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
 #endif
 
 
+
 /**
  * Initialize the context point state.
  *
@@ -268,25 +229,25 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)
  * Initializes __GLcontextRec::Point and point related constants in
  * __GLcontextRec::Const.
  */
-void _mesa_init_point( GLcontext * ctx )
+void
+_mesa_init_point(GLcontext *ctx)
 {
-   int i;
-   
-   /* Point group */
+   GLuint i;
+
    ctx->Point.SmoothFlag = GL_FALSE;
    ctx->Point.Size = 1.0;
-   ctx->Point._Size = 1.0;
    ctx->Point.Params[0] = 1.0;
    ctx->Point.Params[1] = 0.0;
    ctx->Point.Params[2] = 0.0;
    ctx->Point._Attenuated = GL_FALSE;
    ctx->Point.MinSize = 0.0;
-   ctx->Point.MaxSize = ctx->Const.MaxPointSize;
+   ctx->Point.MaxSize
+      = MAX2(ctx->Const.MaxPointSize, ctx->Const.MaxPointSizeAA);
    ctx->Point.Threshold = 1.0;
-   ctx->Point.PointSprite = GL_FALSE; /* GL_ARB_point_sprite / GL_NV_point_sprite */
+   ctx->Point.PointSprite = GL_FALSE; /* GL_ARB/NV_point_sprite */
    ctx->Point.SpriteRMode = GL_ZERO; /* GL_NV_point_sprite (only!) */
    ctx->Point.SpriteOrigin = GL_UPPER_LEFT; /* GL_ARB_point_sprite */
    for (i = 0; i < MAX_TEXTURE_UNITS; i++) {
-      ctx->Point.CoordReplace[i] = GL_FALSE; /* GL_ARB_point_sprite / GL_NV_point_sprite */
+      ctx->Point.CoordReplace[i] = GL_FALSE; /* GL_ARB/NV_point_sprite */
    }
 }