diff options
author | Ian Romanick <[email protected]> | 2004-01-27 18:52:40 +0000 |
---|---|---|
committer | Ian Romanick <[email protected]> | 2004-01-27 18:52:40 +0000 |
commit | c93105eb9e2499efb237fd89dba0cebd48f18375 (patch) | |
tree | e105eeceae3f57be1b583e51957d6f39038fed34 /src/mesa/drivers/glide | |
parent | dd9e6e7e37fbb8c30c8085ed784539d94110aa3e (diff) |
Added support for EXT_blend_equation_separate / ATI_blend_equation_separate.
The internal driver interface was also changed to use
BlendEquationSeparate instead of BlendEquation.
Diffstat (limited to 'src/mesa/drivers/glide')
-rw-r--r-- | src/mesa/drivers/glide/fxdd.c | 8 | ||||
-rw-r--r-- | src/mesa/drivers/glide/fxdrv.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/glide/fxsetup.c | 11 | ||||
-rw-r--r-- | src/mesa/drivers/glide/fxtris.c | 2 |
4 files changed, 12 insertions, 11 deletions
diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index bda11f9644f..ef73f79641c 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 1b42be8e7bb..d48e3dd3ef1 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 4c086302843..cb7c4e2b08b 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 3b82b570eb7..846fd95f711 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 */ |