r300: Use a switch statement in r300UpdateCulling.

This commit is contained in:
Oliver McFadden
2007-07-13 01:45:05 +00:00
parent 4b08b9c3e9
commit 08a005e076
+22 -7
View File
@@ -317,19 +317,34 @@ static void r300UpdateCulling(GLcontext * ctx)
r300ContextPtr r300 = R300_CONTEXT(ctx);
uint32_t val = 0;
R300_STATECHANGE(r300, cul);
if (ctx->Polygon.CullFlag) {
if (ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK)
val = R300_CULL_FRONT | R300_CULL_BACK;
else if (ctx->Polygon.CullFaceMode == GL_FRONT)
switch (ctx->Polygon.CullFaceMode) {
case GL_FRONT:
val = R300_CULL_FRONT;
else
break;
case GL_BACK:
val = R300_CULL_BACK;
break;
case GL_FRONT_AND_BACK:
val = R300_CULL_FRONT | R300_CULL_BACK;
break;
default:
break;
}
}
if (ctx->Polygon.FrontFace == GL_CW)
switch (ctx->Polygon.FrontFace) {
case GL_CW:
val |= R300_FRONT_FACE_CW;
else
break;
case GL_CCW:
val |= R300_FRONT_FACE_CCW;
break;
default:
break;
}
R300_STATECHANGE(r300, cul);
r300->hw.cul.cmd[R300_CUL_CULL] = val;
}