Fall back properly when GL_COLOR_LOGIC_OP is enabled and != GL_COPY.
Add missing per-primitive fallback for polygon stipple.
This commit is contained in:
parent
25817dc26b
commit
f640ee2f6e
|
@ -1179,17 +1179,18 @@ static void savageDDEnable_s4(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||||
savageBlendFunc_s4(ctx);
|
savageBlendFunc_s4(ctx);
|
||||||
break;
|
break;
|
||||||
case GL_BLEND:
|
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
|
/*add the savageBlendFunc 2001/11/25
|
||||||
* if call no such function, then glDisable(GL_BLEND) will do noting,
|
* if call no such function, then glDisable(GL_BLEND) will do noting,
|
||||||
*our chip has no disable bit
|
*our chip has no disable bit
|
||||||
*/
|
*/
|
||||||
savageBlendFunc_s4(ctx);
|
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;
|
break;
|
||||||
case GL_DEPTH_TEST:
|
case GL_DEPTH_TEST:
|
||||||
savageDDDepthFunc_s4(ctx,ctx->Depth.Func);
|
savageDDDepthFunc_s4(ctx,ctx->Depth.Func);
|
||||||
|
@ -1269,17 +1270,18 @@ static void savageDDEnable_s3d(GLcontext *ctx, GLenum cap, GLboolean state)
|
||||||
savageBlendFunc_s3d(ctx);
|
savageBlendFunc_s3d(ctx);
|
||||||
break;
|
break;
|
||||||
case GL_BLEND:
|
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
|
/*add the savageBlendFunc 2001/11/25
|
||||||
* if call no such function, then glDisable(GL_BLEND) will do noting,
|
* if call no such function, then glDisable(GL_BLEND) will do noting,
|
||||||
*our chip has no disable bit
|
*our chip has no disable bit
|
||||||
*/
|
*/
|
||||||
savageBlendFunc_s3d(ctx);
|
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;
|
break;
|
||||||
case GL_DEPTH_TEST:
|
case GL_DEPTH_TEST:
|
||||||
savageDDDepthFunc_s3d(ctx,ctx->Depth.Func);
|
savageDDDepthFunc_s3d(ctx,ctx->Depth.Func);
|
||||||
|
|
|
@ -690,6 +690,7 @@ static void savageFastRenderClippedPoly( GLcontext *ctx, const GLuint *elts,
|
||||||
#define _SAVAGE_NEW_RENDER_STATE (_DD_NEW_LINE_STIPPLE | \
|
#define _SAVAGE_NEW_RENDER_STATE (_DD_NEW_LINE_STIPPLE | \
|
||||||
_DD_NEW_LINE_SMOOTH | \
|
_DD_NEW_LINE_SMOOTH | \
|
||||||
_DD_NEW_POINT_SMOOTH | \
|
_DD_NEW_POINT_SMOOTH | \
|
||||||
|
_DD_NEW_TRI_STIPPLE | \
|
||||||
_DD_NEW_TRI_SMOOTH | \
|
_DD_NEW_TRI_SMOOTH | \
|
||||||
_DD_NEW_TRI_UNFILLED | \
|
_DD_NEW_TRI_UNFILLED | \
|
||||||
_DD_NEW_TRI_LIGHT_TWOSIDE | \
|
_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? */
|
/* original driver didn't have DD_POINT_SMOOTH. really needed? */
|
||||||
#define POINT_FALLBACK (DD_POINT_SMOOTH)
|
#define POINT_FALLBACK (DD_POINT_SMOOTH)
|
||||||
#define LINE_FALLBACK (DD_LINE_STIPPLE|DD_LINE_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_FALLBACK_FLAGS (POINT_FALLBACK|LINE_FALLBACK|TRI_FALLBACK)
|
||||||
#define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED)
|
#define ANY_RASTER_FLAGS (DD_TRI_LIGHT_TWOSIDE|DD_TRI_OFFSET|DD_TRI_UNFILLED)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue