summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r200/r200_state.c
diff options
context:
space:
mode:
authorRoland Scheidegger <rscheidegger@gmx.ch>2005-10-05 16:15:16 +0000
committerRoland Scheidegger <rscheidegger@gmx.ch>2005-10-05 16:15:16 +0000
commit44dace86eaf9eded8e6465adfadf6345658686dd (patch)
tree1439d84e53dec0a7f108e05e1f221e57c35876a4 /src/mesa/drivers/dri/r200/r200_state.c
parent26f69d87a4e6f4d39ce10864e9e70689646155ed (diff)
enable point sizes larger than 1 (for aliased points only) by using the hw point sprite primitive.
Diffstat (limited to 'src/mesa/drivers/dri/r200/r200_state.c')
-rw-r--r--src/mesa/drivers/dri/r200/r200_state.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/r200/r200_state.c b/src/mesa/drivers/dri/r200/r200_state.c
index caf8571a52..e80cae872e 100644
--- a/src/mesa/drivers/dri/r200/r200_state.c
+++ b/src/mesa/drivers/dri/r200/r200_state.c
@@ -689,7 +689,11 @@ static void r200FrontFace( GLcontext *ctx, GLenum mode )
*/
static void r200PointSize( GLcontext *ctx, GLfloat size )
{
- if (0) fprintf(stderr, "%s: %f\n", __FUNCTION__, size );
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+
+ R200_STATECHANGE( rmesa, cst );
+ rmesa->hw.cst.cmd[CST_RE_POINTSIZE] &= ~0xffff;
+ rmesa->hw.cst.cmd[CST_RE_POINTSIZE] |= ((GLuint)(ctx->Point.Size * 16.0));
}
/* =============================================================
@@ -1982,10 +1986,10 @@ static void r200Enable( GLcontext *ctx, GLenum cap, GLboolean state )
}
break;
- /* Pointsize registers on r200 don't seem to do anything. Maybe
- * have to pass pointsizes as vertex parameters? In any case,
- * setting pointmin == pointsizemax == 1.0, and doing nothing
- * for aa is enough to satisfy conform.
+ /* Pointsize registers on r200 only work for point sprites, and point smooth
+ * doesn't work for point sprites (and isn't needed for 1.0 sized aa points).
+ * In any case, setting pointmin == pointsizemax == 1.0 for aa points
+ * is enough to satisfy conform.
*/
case GL_POINT_SMOOTH:
break;