From db46e2a7ddc91ee1322897d68a2ae97912f28ed3 Mon Sep 17 00:00:00 2001 From: Aapo Tahkola Date: Thu, 5 May 2005 03:40:47 +0000 Subject: Flat shading and bunch of clarifications to r300_reg.h . --- src/mesa/drivers/dri/r300/r300_state.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/mesa/drivers/dri/r300/r300_state.c') diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index 922113c920..3d9f6ee8fd 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -886,6 +886,23 @@ static void r300PolygonMode(GLcontext *ctx, GLenum face, GLenum mode) } } +static void r300ShadeModel(GLcontext * ctx, GLenum mode) +{ + r300ContextPtr rmesa = R300_CONTEXT(ctx); + + R300_STATECHANGE(rmesa, sm); + switch (mode) { + case GL_FLAT: + rmesa->hw.sm.cmd[R300_SM] = R300_RE_SHADE_MODEL_FLAT; + break; + case GL_SMOOTH: + rmesa->hw.sm.cmd[R300_SM] = R300_RE_SHADE_MODEL_SMOOTH; + break; + default: + return; + } +} + static void r300StencilFunc(GLcontext * ctx, GLenum func, GLint ref, GLuint mask) { @@ -2098,6 +2115,8 @@ void r300ResetHwState(r300ContextPtr r300) r300DepthMask(ctx, ctx->Depth.Mask); r300DepthFunc(ctx, ctx->Depth.Func); + r300ShadeModel(ctx, ctx->Light.ShadeModel); + /* stencil */ r300Enable(ctx, GL_STENCIL_TEST, ctx->Stencil.Enabled); r300StencilMask(ctx, ctx->Stencil.WriteMask[0]); @@ -2441,6 +2460,7 @@ void r300InitStateFuncs(struct dd_function_table* functions) functions->DepthMask = r300DepthMask; functions->CullFace = r300CullFace; functions->FrontFace = r300FrontFace; + functions->ShadeModel = r300ShadeModel; /* Stencil related */ functions->ClearStencil = r300ClearStencil; -- cgit v1.2.3