diff options
author | Ben Skeggs <skeggsb@gmail.com> | 2008-09-12 20:37:33 +1000 |
---|---|---|
committer | Ben Skeggs <skeggsb@gmail.com> | 2008-09-12 20:37:33 +1000 |
commit | cbe05a4734a7df7dd9d8e52f79d0ed5e6c28ae60 (patch) | |
tree | e4f67e46334b43f051a0605c7762cac36ad7c1f6 /src/gallium/drivers/nv30/nv30_state_blend.c | |
parent | 522139dd146450edfd3d2f07c627b32512a2c27e (diff) | |
parent | 81335d0f1760fe172a106f79e81281c1f0d7dedf (diff) |
Merge remote branch 'nouveau/gallium-0.1' into nouveau-gallium-0.2
Conflicts:
configs/linux-dri
Diffstat (limited to 'src/gallium/drivers/nv30/nv30_state_blend.c')
-rw-r--r-- | src/gallium/drivers/nv30/nv30_state_blend.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv30/nv30_state_blend.c b/src/gallium/drivers/nv30/nv30_state_blend.c new file mode 100644 index 0000000000..44d43e132a --- /dev/null +++ b/src/gallium/drivers/nv30/nv30_state_blend.c @@ -0,0 +1,40 @@ +#include "nv30_context.h" + +static boolean +nv30_state_blend_validate(struct nv30_context *nv30) +{ + so_ref(nv30->blend->so, &nv30->state.hw[NV30_STATE_BLEND]); + return TRUE; +} + +struct nv30_state_entry nv30_state_blend = { + .validate = nv30_state_blend_validate, + .dirty = { + .pipe = NV30_NEW_BLEND, + .hw = NV30_STATE_BLEND + } +}; + +static boolean +nv30_state_blend_colour_validate(struct nv30_context *nv30) +{ + struct nouveau_stateobj *so = so_new(2, 0); + struct pipe_blend_color *bcol = &nv30->blend_colour; + + so_method(so, nv30->screen->rankine, NV34TCL_BLEND_COLOR, 1); + so_data (so, ((float_to_ubyte(bcol->color[3]) << 24) | + (float_to_ubyte(bcol->color[0]) << 16) | + (float_to_ubyte(bcol->color[1]) << 8) | + (float_to_ubyte(bcol->color[2]) << 0))); + + so_ref(so, &nv30->state.hw[NV30_STATE_BCOL]); + return TRUE; +} + +struct nv30_state_entry nv30_state_blend_colour = { + .validate = nv30_state_blend_colour_validate, + .dirty = { + .pipe = NV30_NEW_BCOL, + .hw = NV30_STATE_BCOL + } +}; |