From f640ee2f6e1b69e332b46e48b3b4e9f33bbc6e39 Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Sat, 12 Feb 2005 16:02:30 +0000 Subject: Fall back properly when GL_COLOR_LOGIC_OP is enabled and != GL_COPY. Add missing per-primitive fallback for polygon stipple. --- src/mesa/drivers/dri/savage/savagestate.c | 26 ++++++++++++++------------ src/mesa/drivers/dri/savage/savagetris.c | 3 ++- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/mesa/drivers/dri/savage/savagestate.c b/src/mesa/drivers/dri/savage/savagestate.c index b417d1e2aa..fd3da8262e 100644 --- a/src/mesa/drivers/dri/savage/savagestate.c +++ b/src/mesa/drivers/dri/savage/savagestate.c @@ -1179,17 +1179,18 @@ static void savageDDEnable_s4(GLcontext *ctx, GLenum cap, GLboolean state) savageBlendFunc_s4(ctx); break; case GL_BLEND: - /*Can't find Enable bit in the 3D registers.*/ - /* For some reason enable(GL_BLEND) affects ColorLogicOpEnabled. - */ - FALLBACK (ctx, SAVAGE_FALLBACK_LOGICOP, - (ctx->Color.ColorLogicOpEnabled && - ctx->Color.LogicOp != GL_COPY)); /*add the savageBlendFunc 2001/11/25 * if call no such function, then glDisable(GL_BLEND) will do noting, *our chip has no disable bit */ savageBlendFunc_s4(ctx); + case GL_COLOR_LOGIC_OP: + /* Fall through: + * For some reason enable(GL_BLEND) affects ColorLogicOpEnabled. + */ + FALLBACK (ctx, SAVAGE_FALLBACK_LOGICOP, + (ctx->Color.ColorLogicOpEnabled && + ctx->Color.LogicOp != GL_COPY)); break; case GL_DEPTH_TEST: savageDDDepthFunc_s4(ctx,ctx->Depth.Func); @@ -1269,17 +1270,18 @@ static void savageDDEnable_s3d(GLcontext *ctx, GLenum cap, GLboolean state) savageBlendFunc_s3d(ctx); break; case GL_BLEND: - /*Can't find Enable bit in the 3D registers.*/ - /* For some reason enable(GL_BLEND) affects ColorLogicOpEnabled. - */ - FALLBACK (ctx, SAVAGE_FALLBACK_LOGICOP, - (ctx->Color.ColorLogicOpEnabled && - ctx->Color.LogicOp != GL_COPY)); /*add the savageBlendFunc 2001/11/25 * if call no such function, then glDisable(GL_BLEND) will do noting, *our chip has no disable bit */ savageBlendFunc_s3d(ctx); + case GL_COLOR_LOGIC_OP: + /* Fall through: + * For some reason enable(GL_BLEND) affects ColorLogicOpEnabled. + */ + FALLBACK (ctx, SAVAGE_FALLBACK_LOGICOP, + (ctx->Color.ColorLogicOpEnabled && + ctx->Color.LogicOp != GL_COPY)); break; case GL_DEPTH_TEST: savageDDDepthFunc_s3d(ctx,ctx->Depth.Func); diff --git a/src/mesa/drivers/dri/savage/savagetris.c b/src/mesa/drivers/dri/savage/savagetris.c index f5faa3fe56..405a58977b 100644 --- a/src/mesa/drivers/dri/savage/savagetris.c +++ b/src/mesa/drivers/dri/savage/savagetris.c @@ -690,6 +690,7 @@ static void savageFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, #define _SAVAGE_NEW_RENDER_STATE (_DD_NEW_LINE_STIPPLE | \ _DD_NEW_LINE_SMOOTH | \ _DD_NEW_POINT_SMOOTH | \ + _DD_NEW_TRI_STIPPLE | \ _DD_NEW_TRI_SMOOTH | \ _DD_NEW_TRI_UNFILLED | \ _DD_NEW_TRI_LIGHT_TWOSIDE | \ @@ -698,7 +699,7 @@ static void savageFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts, /* original driver didn't have DD_POINT_SMOOTH. really needed? */ #define POINT_FALLBACK (DD_POINT_SMOOTH) #define LINE_FALLBACK (DD_LINE_STIPPLE|DD_LINE_SMOOTH) -#define TRI_FALLBACK (DD_TRI_SMOOTH) +#define TRI_FALLBACK (DD_TRI_STIPPLE|DD_TRI_SMOOTH) #define ANY_FALLBACK_FLAGS (POINT_FALLBACK|LINE_FALLBACK|TRI_FALLBACK) #define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED) -- cgit v1.2.3