summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_blit.c
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2008-03-19 11:12:48 -0600
committerBrian <brian.paul@tungstengraphics.com>2008-03-19 11:14:18 -0600
commit7d95efde0a0e13e13c59444703bc47eb13926385 (patch)
tree807dbe0e71c0c98534fef1957b7317acd306c3a5 /src/mesa/state_tracker/st_cb_blit.c
parent1213c7257335d577cf0217e34edafddf0451ba1b (diff)
gallium: implement CSO save/restore functions for use by meta operations (blit, gen-mipmaps, quad-clear, etc)
Also, additional cso_set_*() functions for viewport, framebuffer, blend color, etc. state.
Diffstat (limited to 'src/mesa/state_tracker/st_cb_blit.c')
-rw-r--r--src/mesa/state_tracker/st_cb_blit.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/src/mesa/state_tracker/st_cb_blit.c b/src/mesa/state_tracker/st_cb_blit.c
index dfa79c975c..64314a5078 100644
--- a/src/mesa/state_tracker/st_cb_blit.c
+++ b/src/mesa/state_tracker/st_cb_blit.c
@@ -52,7 +52,7 @@
void
st_init_blit(struct st_context *st)
{
- st->blit = util_create_blit(st->pipe);
+ st->blit = util_create_blit(st->pipe, st->cso_context);
}
@@ -98,22 +98,9 @@ st_BlitFramebuffer(GLcontext *ctx,
}
-#if 0
- /* XXX is this sufficient? */
- st_invalidate_state(ctx, _NEW_COLOR | _NEW_TEXTURE);
-#else
- /* need to "unset" cso state because we went behind the back of the cso
- * tracker. Without unset, the _set_ calls would be no-ops.
- */
- cso_unset_blend(st->cso_context);
- cso_unset_depth_stencil_alpha(st->cso_context);
- cso_unset_rasterizer(st->cso_context);
- cso_set_blend(st->cso_context, &st->state.blend);
- cso_set_depth_stencil_alpha(st->cso_context, &st->state.depth_stencil);
- cso_set_rasterizer(st->cso_context, &st->state.rasterizer);
+ /* shaders don't go through CSO yet */
pipe->bind_fs_state(pipe, st->fp->driver_shader);
pipe->bind_vs_state(pipe, st->vp->driver_shader);
-#endif
}