diff options
author | Roland Scheidegger <rscheidegger@gmx.ch> | 2005-10-05 16:15:16 +0000 |
---|---|---|
committer | Roland Scheidegger <rscheidegger@gmx.ch> | 2005-10-05 16:15:16 +0000 |
commit | 44dace86eaf9eded8e6465adfadf6345658686dd (patch) | |
tree | 1439d84e53dec0a7f108e05e1f221e57c35876a4 /src/mesa/drivers/dri/r200/r200_state.c | |
parent | 26f69d87a4e6f4d39ce10864e9e70689646155ed (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.c | 14 |
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; |