diff options
author | Ben Skeggs <darktama@beleth.(none)> | 2008-02-20 17:14:41 +1100 |
---|---|---|
committer | Ben Skeggs <darktama@beleth.(none)> | 2008-02-20 17:14:41 +1100 |
commit | 9cd10d7618a226fe46395b08beb19e420bc14a4f (patch) | |
tree | 105906fcd4a642586332f8aa7bc7cd7274c78fb5 /src/gallium/drivers/nv40/nv40_state_viewport.c | |
parent | 46c3d0918dd7a47f69c21e4eb1a3fd2a2fbe6223 (diff) |
nv40: almost there..
Diffstat (limited to 'src/gallium/drivers/nv40/nv40_state_viewport.c')
-rw-r--r-- | src/gallium/drivers/nv40/nv40_state_viewport.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv40/nv40_state_viewport.c b/src/gallium/drivers/nv40/nv40_state_viewport.c new file mode 100644 index 0000000000..79fcc31a8b --- /dev/null +++ b/src/gallium/drivers/nv40/nv40_state_viewport.c @@ -0,0 +1,30 @@ +#include "nv40_context.h" + +static boolean +nv40_state_viewport_validate(struct nv40_context *nv40) +{ + struct nouveau_stateobj *so = so_new(9, 0); + struct pipe_viewport_state *vpt = &nv40->pipe_state.viewport; + + so_method(so, nv40->hw->curie, NV40TCL_VIEWPORT_TRANSLATE_X, 8); + so_data (so, fui(vpt->translate[0])); + so_data (so, fui(vpt->translate[1])); + so_data (so, fui(vpt->translate[2])); + so_data (so, fui(vpt->translate[3])); + so_data (so, fui(vpt->scale[0])); + so_data (so, fui(vpt->scale[1])); + so_data (so, fui(vpt->scale[2])); + so_data (so, fui(vpt->scale[3])); + + so_ref(so, &nv40->state.hw[NV40_STATE_VIEWPORT]); + so_ref(NULL, &so); + return TRUE; +} + +struct nv40_state_entry nv40_state_viewport = { + .validate = nv40_state_viewport_validate, + .dirty = { + .pipe = NV40_NEW_VIEWPORT, + .hw = NV40_STATE_VIEWPORT + } +}; |