From c93105eb9e2499efb237fd89dba0cebd48f18375 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 27 Jan 2004 18:52:40 +0000 Subject: Added support for EXT_blend_equation_separate / ATI_blend_equation_separate. The internal driver interface was also changed to use BlendEquationSeparate instead of BlendEquation. --- src/mesa/drivers/glide/fxdd.c | 8 ++++---- src/mesa/drivers/glide/fxdrv.h | 2 +- src/mesa/drivers/glide/fxsetup.c | 11 ++++++----- src/mesa/drivers/glide/fxtris.c | 2 +- 4 files changed, 12 insertions(+), 11 deletions(-) (limited to 'src/mesa/drivers/glide') diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index bda11f9644..ef73f79641 100644 --- a/src/mesa/drivers/glide/fxdd.c +++ b/src/mesa/drivers/glide/fxdd.c @@ -1531,10 +1531,10 @@ fx_check_IsInHardware(GLcontext * ctx) } if (ctx->Color.BlendEnabled) { - if (ctx->Color.BlendEquation != GL_FUNC_ADD_EXT) { + if (ctx->Color.BlendEquationRGB != GL_FUNC_ADD) { if (!fxMesa->HavePixExt || - ((ctx->Color.BlendEquation != GL_FUNC_SUBTRACT_EXT) && - (ctx->Color.BlendEquation != GL_FUNC_REVERSE_SUBTRACT_EXT))) { + ((ctx->Color.BlendEquationRGB != GL_FUNC_SUBTRACT) && + (ctx->Color.BlendEquationRGB != GL_FUNC_REVERSE_SUBTRACT))) { return FX_FALLBACK_BLEND; } } @@ -1702,7 +1702,7 @@ fxSetupDDPointers(GLcontext * ctx) ctx->Driver.UpdateTexturePalette = fxDDTexPalette; ctx->Driver.AlphaFunc = fxDDAlphaFunc; ctx->Driver.BlendFuncSeparate = fxDDBlendFuncSeparate; - ctx->Driver.BlendEquation = fxDDBlendEquation; + ctx->Driver.BlendEquationSeparate = fxDDBlendEquationSeparate; ctx->Driver.DepthFunc = fxDDDepthFunc; ctx->Driver.DepthMask = fxDDDepthMask; ctx->Driver.ColorMask = fxDDColorMask; diff --git a/src/mesa/drivers/glide/fxdrv.h b/src/mesa/drivers/glide/fxdrv.h index 1b42be8e7b..d48e3dd3ef 100644 --- a/src/mesa/drivers/glide/fxdrv.h +++ b/src/mesa/drivers/glide/fxdrv.h @@ -620,7 +620,7 @@ extern void fxDDTexUseGlbPalette(GLcontext *, GLboolean); extern void fxDDEnable(GLcontext *, GLenum, GLboolean); extern void fxDDAlphaFunc(GLcontext *, GLenum, GLfloat); extern void fxDDBlendFuncSeparate(GLcontext *, GLenum, GLenum, GLenum, GLenum); -extern void fxDDBlendEquation(GLcontext *, GLenum); +extern void fxDDBlendEquationSeparate(GLcontext *, GLenum, GLenum); extern void fxDDDepthMask(GLcontext *, GLboolean); extern void fxDDDepthFunc(GLcontext *, GLenum); extern void fxDDStencilFunc (GLcontext *ctx, GLenum func, GLint ref, GLuint mask); diff --git a/src/mesa/drivers/glide/fxsetup.c b/src/mesa/drivers/glide/fxsetup.c index 4c08630284..cb7c4e2b08 100644 --- a/src/mesa/drivers/glide/fxsetup.c +++ b/src/mesa/drivers/glide/fxsetup.c @@ -1527,20 +1527,21 @@ which are drawn front-to-back. } void -fxDDBlendEquation(GLcontext * ctx, GLenum mode) +fxDDBlendEquationSeparate(GLcontext * ctx, GLenum modeRGB, GLenum modeA) { fxMesaContext fxMesa = FX_CONTEXT(ctx); tfxUnitsState *us = &fxMesa->unitsState; GrAlphaBlendOp_t q; - switch (mode) { - case GL_FUNC_ADD_EXT: + assert( modeRGB == modeA ); + switch (modeRGB) { + case GL_FUNC_ADD: q = GR_BLEND_OP_ADD; break; - case GL_FUNC_SUBTRACT_EXT: + case GL_FUNC_SUBTRACT: q = GR_BLEND_OP_SUB; break; - case GL_FUNC_REVERSE_SUBTRACT_EXT: + case GL_FUNC_REVERSE_SUBTRACT: q = GR_BLEND_OP_REVSUB; break; default: diff --git a/src/mesa/drivers/glide/fxtris.c b/src/mesa/drivers/glide/fxtris.c index 3b82b570eb..846fd95f71 100644 --- a/src/mesa/drivers/glide/fxtris.c +++ b/src/mesa/drivers/glide/fxtris.c @@ -1407,7 +1407,7 @@ GLboolean fxMultipass_ColorSum (GLcontext *ctx, GLuint pass) ctx->Texture.Unit[0]._ReallyEnabled = 0; ctx->Texture.Unit[1]._ReallyEnabled = 0; /* SUM the colors */ - fxDDBlendEquation(ctx, GL_FUNC_ADD_EXT); + fxDDBlendEquationSeparate(ctx, GL_FUNC_ADD, GL_FUNC_ADD); fxDDBlendFuncSeparate(ctx, GL_ONE, GL_ONE, GL_ZERO, GL_ONE); fxDDEnable(ctx, GL_BLEND, GL_TRUE); /* make sure we draw only where we want to */ -- cgit v1.2.3