summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_validate.c
diff options
context:
space:
mode:
authorBrian <[email protected]>2008-02-21 16:18:05 -0700
committerBrian <[email protected]>2008-02-21 16:18:05 -0700
commiteb4dc2dd5ed62e6ccb55ccc2bc13f6a2f3fc1f76 (patch)
tree36918ed5ea3c04aefe57eb4e3629cdf31ced2987 /src/gallium/auxiliary/draw/draw_validate.c
parenta93d8bfaf2aba1b2fe3ecfbb5bc4b7ff113c305e (diff)
gallium: new AA point drawing stage
AA points are drawn by converting the point to a quad, then modifying the user's fragment shader to compute a coverage value. The final fragment color's alpha is modulated by the coverage value. Fragments outside the point's radius are killed.
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_validate.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_validate.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_validate.c b/src/gallium/auxiliary/draw/draw_validate.c
index 97e40e372b8..5167ef1e754 100644
--- a/src/gallium/auxiliary/draw/draw_validate.c
+++ b/src/gallium/auxiliary/draw/draw_validate.c
@@ -63,6 +63,11 @@ static struct draw_stage *validate_pipeline( struct draw_stage *stage )
next = draw->pipeline.aaline;
}
+ if (draw->rasterizer->point_smooth && draw->pipeline.aapoint) {
+ draw->pipeline.aapoint->next = next;
+ next = draw->pipeline.aapoint;
+ }
+
if ((draw->rasterizer->line_width != 1.0 && draw->convert_wide_lines
&& !draw->rasterizer->line_smooth) ||
(draw->rasterizer->point_size != 1.0 && draw->convert_wide_points) ||