diff options
author | Nicolai Haehnle <prefect_@gmx.net> | 2004-10-17 20:26:06 +0000 |
---|---|---|
committer | Nicolai Haehnle <prefect_@gmx.net> | 2004-10-17 20:26:06 +0000 |
commit | ff42a00402deab3034163c2b76c2082cce39d901 (patch) | |
tree | 0c81aba24705d6643d0b888265270e494ce344ce /src/mesa/drivers/dri/r300/r300_state.c | |
parent | 158a251a6b8ffa02387c767a00dc960b49098022 (diff) |
- FIX: flickering
- Scissor support works now
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_state.c')
-rw-r--r-- | src/mesa/drivers/dri/r300/r300_state.c | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 43cfe2b69b..9c5138c279 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -37,6 +37,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "glheader.h" #include "state.h" #include "imports.h" +#include "enums.h" #include "macros.h" #include "context.h" #include "dd.h" @@ -49,6 +50,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "tnl/tnl.h" #include "radeon_ioctl.h" +#include "radeon_state.h" #include "r300_context.h" #include "r300_ioctl.h" #include "r300_state.h" @@ -57,6 +59,24 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. /** + * Handle glEnable()/glDisable(). + */ +static void r300Enable(GLcontext* ctx, GLenum cap, GLboolean state) +{ + if (RADEON_DEBUG & DEBUG_STATE) + fprintf(stderr, "%s( %s = %s )\n", __FUNCTION__, + _mesa_lookup_enum_by_nr(cap), + state ? "GL_TRUE" : "GL_FALSE"); + + switch (cap) { + default: + radeonEnable(ctx, cap, state); + return; + } +} + + +/** * Called by Mesa after an internal state update. */ static void r300InvalidateState(GLcontext * ctx, GLuint new_state) @@ -317,6 +337,7 @@ void r300ResetHwState(r300ContextPtr r300) } + /** * Calculate initial hardware state and register state functions. * Assumes that the command buffer and state atoms have been @@ -324,12 +345,20 @@ void r300ResetHwState(r300ContextPtr r300) */ void r300InitState(r300ContextPtr r300) { - struct dd_function_table* functions; + radeonInitState(&r300->radeon); r300ResetHwState(r300); +} + + +/** + * Initialize driver's state callback functions + */ +void r300InitStateFuncs(struct dd_function_table* functions) +{ + radeonInitStateFuncs(functions); - /* Setup state functions */ - functions = &r300->radeon.glCtx->Driver; functions->UpdateState = r300InvalidateState; + functions->Enable= r300Enable; } |