diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-03-19 11:12:48 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-03-19 11:14:18 -0600 |
commit | 7d95efde0a0e13e13c59444703bc47eb13926385 (patch) | |
tree | 807dbe0e71c0c98534fef1957b7317acd306c3a5 /src/mesa/state_tracker/st_atom_blend.c | |
parent | 1213c7257335d577cf0217e34edafddf0451ba1b (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_atom_blend.c')
-rw-r--r-- | src/mesa/state_tracker/st_atom_blend.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c index 6c13fc8141..2a0e92245c 100644 --- a/src/mesa/state_tracker/st_atom_blend.c +++ b/src/mesa/state_tracker/st_atom_blend.c @@ -39,6 +39,7 @@ #include "pipe/p_defines.h" #include "cso_cache/cso_context.h" +#include "main/macros.h" /** * Convert GLenum blend tokens to pipe tokens. @@ -213,13 +214,10 @@ update_blend( struct st_context *st ) cso_set_blend(st->cso_context, blend); - if (memcmp(st->ctx->Color.BlendColor, &st->state.blend_color, 4 * sizeof(GLfloat)) != 0) { - /* state has changed */ - st->state.blend_color.color[0] = st->ctx->Color.BlendColor[0]; - st->state.blend_color.color[1] = st->ctx->Color.BlendColor[1]; - st->state.blend_color.color[2] = st->ctx->Color.BlendColor[2]; - st->state.blend_color.color[3] = st->ctx->Color.BlendColor[3]; - st->pipe->set_blend_color(st->pipe, (struct pipe_blend_color *) st->ctx->Color.BlendColor); + { + struct pipe_blend_color bc; + COPY_4FV(bc.color, st->ctx->Color.BlendColor); + cso_set_blend_color(st->cso_context, &bc); } } |