summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_quad_coverage.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2008-04-07 21:59:12 -0600
committerBrian <brian.paul@tungstengraphics.com>2008-04-07 21:59:12 -0600
commitc7daa68ca312cc98abe351be2fef8d8246929627 (patch)
treeafb31b40a34da809654bd7cef860d9f486fc1c9f /src/gallium/drivers/softpipe/sp_quad_coverage.c
parent4e2127b0e5cb6411123e16dd562626cd70814a9a (diff)
gallium: begin reworking quad stages for multiple color outputs
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_quad_coverage.c')
-rw-r--r--src/gallium/drivers/softpipe/sp_quad_coverage.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/gallium/drivers/softpipe/sp_quad_coverage.c b/src/gallium/drivers/softpipe/sp_quad_coverage.c
index b3d3fae22f..dd5ebb2296 100644
--- a/src/gallium/drivers/softpipe/sp_quad_coverage.c
+++ b/src/gallium/drivers/softpipe/sp_quad_coverage.c
@@ -50,12 +50,17 @@ coverage_quad(struct quad_stage *qs, struct quad_header *quad)
if ((softpipe->rasterizer->poly_smooth && quad->prim == PRIM_TRI) ||
(softpipe->rasterizer->line_smooth && quad->prim == PRIM_LINE) ||
(softpipe->rasterizer->point_smooth && quad->prim == PRIM_POINT)) {
- float (*quadColor)[4] = quad->outputs.color;
- unsigned j;
- for (j = 0; j < QUAD_SIZE; j++) {
- assert(quad->coverage[j] >= 0.0);
- assert(quad->coverage[j] <= 1.0);
+ uint cbuf;
+
+ /* loop over colorbuffer outputs */
+ for (cbuf = 0; cbuf < softpipe->framebuffer.num_cbufs; cbuf++) {
+ float (*quadColor)[4] = quad->outputs.color[cbuf];
+ unsigned j;
+ for (j = 0; j < QUAD_SIZE; j++) {
+ assert(quad->coverage[j] >= 0.0);
+ assert(quad->coverage[j] <= 1.0);
quadColor[3][j] *= quad->coverage[j];
+ }
}
}