summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/r300/r300_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_state.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_state.c35
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;
}