add quad_stage::begin() funcs
authorBrian <brian@i915.localnet.net>
Wed, 8 Aug 2007 17:44:06 +0000 (11:44 -0600)
committerBrian <brian@i915.localnet.net>
Wed, 8 Aug 2007 18:04:08 +0000 (12:04 -0600)
src/mesa/pipe/softpipe/sp_quad_alpha_test.c
src/mesa/pipe/softpipe/sp_quad_blend.c
src/mesa/pipe/softpipe/sp_quad_bufloop.c
src/mesa/pipe/softpipe/sp_quad_colormask.c
src/mesa/pipe/softpipe/sp_quad_coverage.c
src/mesa/pipe/softpipe/sp_quad_depth_test.c
src/mesa/pipe/softpipe/sp_quad_fs.c
src/mesa/pipe/softpipe/sp_quad_occlusion.c
src/mesa/pipe/softpipe/sp_quad_output.c
src/mesa/pipe/softpipe/sp_quad_stencil.c
src/mesa/pipe/softpipe/sp_quad_stipple.c

index 8c28a824be5c9ff4c1860e0e9285ae6eef6cf126..585adb41fe590ae384dff47b84404e38157d53fc 100644 (file)
@@ -82,12 +82,20 @@ alpha_test_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void alpha_test_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
 struct quad_stage *
 sp_quad_alpha_test_stage( struct softpipe_context *softpipe )
 {
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = alpha_test_begin;
    stage->run = alpha_test_quad;
 
    return stage;
index 3d097aea65e155fdeba0ebe64a8f86e9e3fe69ed..ad21c27b2f05b40f927f741c17234a3ca82ead55 100644 (file)
@@ -382,6 +382,11 @@ blend_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void blend_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
 
 
 struct quad_stage *sp_quad_blend_stage( struct softpipe_context *softpipe )
@@ -389,6 +394,7 @@ struct quad_stage *sp_quad_blend_stage( struct softpipe_context *softpipe )
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = blend_begin;
    stage->run = blend_quad;
 
    return stage;
index be32d02a46303a6ceda9d10b0c19e13aa7de0515..91c4b70794bc2672ee5d65f721afccc8b2749e17 100644 (file)
@@ -45,6 +45,13 @@ cbuf_loop_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void cbuf_loop_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
 /**
  * Create the colorbuffer loop stage.
  * This is used to implement multiple render targets and GL_FRONT_AND_BACK
@@ -55,6 +62,7 @@ struct quad_stage *sp_quad_bufloop_stage( struct softpipe_context *softpipe )
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = cbuf_loop_begin;
    stage->run = cbuf_loop_quad;
 
    return stage;
index fff6efa8f6ab9b061f78661249c42c425dd76867..da5ed8f27c040d4a65f3de9f3011f80d5e13c84d 100644 (file)
@@ -71,6 +71,11 @@ colormask_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void colormask_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
 
 
 struct quad_stage *sp_quad_colormask_stage( struct softpipe_context *softpipe )
@@ -78,6 +83,7 @@ struct quad_stage *sp_quad_colormask_stage( struct softpipe_context *softpipe )
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = colormask_begin;
    stage->run = colormask_quad;
 
    return stage;
index cdd8890c7f39b8c135c16f0fd3394f96a8af951c..f166276e840ba34e1ab859eb9d37aa8ddc9f0676 100644 (file)
@@ -63,11 +63,19 @@ coverage_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void coverage_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
 struct quad_stage *sp_quad_coverage_stage( struct softpipe_context *softpipe )
 {
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = coverage_begin;
    stage->run = coverage_quad;
 
    return stage;
index 3a8df33e6743f2295ec2e54f728938a31fe50b93..904d93a614c5900fbd30b66688a3bd192ac271f9 100644 (file)
@@ -156,6 +156,11 @@ depth_test_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void depth_test_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
 
 
 struct quad_stage *sp_quad_depth_test_stage( struct softpipe_context *softpipe )
@@ -163,6 +168,7 @@ struct quad_stage *sp_quad_depth_test_stage( struct softpipe_context *softpipe )
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = depth_test_begin;
    stage->run = depth_test_quad;
 
    return stage;
index f5240b67f898ac50e7c7232b6086076fb4748678..5e4782ca4874c8976f398d29e3f6d49594d0c74d 100644 (file)
@@ -322,6 +322,7 @@ static void shade_begin(struct quad_stage *qs)
       qss->samplers[i].texture = softpipe->texture[i];
       qss->samplers[i].get_sample = sp_get_sample;
       qss->samplers[i].pipe = &softpipe->pipe;
+      /* init cache info here */
    }
 
    if (qs->next->begin)
index 843c462d487170808c56f49460df191e591328f2..0fc1acbf2f8924e1b7ee4240f9631701e9f6b734 100644 (file)
@@ -56,11 +56,20 @@ occlusion_count_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void occlusion_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
+
 struct quad_stage *sp_quad_occlusion_stage( struct softpipe_context *softpipe )
 {
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = occlusion_begin;
    stage->run = occlusion_count_quad;
 
    return stage;
index 12ab1eca1c749085c2fedd8c2ae24c328165f1eb..49161993e6b6b93eb4e6023bdf7c18d187d5438d 100644 (file)
@@ -84,11 +84,19 @@ output_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void output_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
 struct quad_stage *sp_quad_output_stage( struct softpipe_context *softpipe )
 {
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = output_begin;
    stage->run = output_quad;
 
    return stage;
index 0b37474c1a885c903e6b1817f60b98811c52961d..6a9ea9069d027a9c3276020f1c8f795328692da5 100644 (file)
@@ -275,6 +275,11 @@ stencil_test_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void stencil_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
 
 
 struct quad_stage *sp_quad_stencil_test_stage( struct softpipe_context *softpipe )
@@ -282,6 +287,7 @@ struct quad_stage *sp_quad_stencil_test_stage( struct softpipe_context *softpipe
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = stencil_begin;
    stage->run = stencil_test_quad;
 
    return stage;
index cad1a1400c5a383f2ff3d7f08977c16a9b452f93..286eb1cd954843a4d2a77fa0e3a959935f742014 100644 (file)
@@ -36,12 +36,20 @@ stipple_quad(struct quad_stage *qs, struct quad_header *quad)
 }
 
 
+static void stipple_begin(struct quad_stage *qs)
+{
+   if (qs->next->begin)
+      qs->next->begin(qs->next);
+}
+
+
 struct quad_stage *
 sp_quad_polygon_stipple_stage( struct softpipe_context *softpipe )
 {
    struct quad_stage *stage = CALLOC_STRUCT(quad_stage);
 
    stage->softpipe = softpipe;
+   stage->begin = stipple_begin;
    stage->run = stipple_quad;
 
    return stage;