boolean write_color )
{
pipe_surface_reference(&rast->state.cbuf, cbuf);
+ rast->state.write_color = write_color;
}
void lp_rast_bind_zstencil( struct lp_rasterizer *rast,
boolean write_zstencil )
{
pipe_surface_reference(&rast->state.zsbuf, zsbuf);
+ rast->state.write_zstencil = write_zstencil;
}
*/
-void lp_rast_end_tile( struct lp_rasterizer *rast )
+static void lp_rast_store_color( struct lp_rasterizer *rast )
{
struct pipe_surface *surface;
struct pipe_screen *screen;
screen->tex_transfer_destroy(transfer);
- if (0) {
- /* FIXME: call u_tile func to store depth/stencil to surface */
- }
}
+
+static void lp_rast_store_zstencil( struct lp_rasterizer *rast )
+{
+ /* FIXME: call u_tile func to store depth/stencil to surface */
+}
+
+
+void lp_rast_end_tile( struct lp_rasterizer *rast )
+{
+ if (rast->state.write_color)
+ lp_rast_store_color(rast);
+
+ if (rast->state.write_zstencil)
+ lp_rast_store_zstencil(rast);
+}
+
+
/* Shutdown:
*/
void lp_rast_destroy( struct lp_rasterizer *rast )
const union lp_rast_cmd_arg *,
const struct lp_rast_shader_inputs *);
-void lp_rast_store_color( struct lp_rasterizer *,
- const union lp_rast_cmd_arg *);
-
-void lp_rast_store_zstencil( struct lp_rasterizer *,
- const union lp_rast_cmd_arg *);
-
/* End of tile:
*/