Mesa (master): mesa: update state setup/ validation for GL_NV_texture_env_combine4
Brian Paul
brianp at kemper.freedesktop.org
Sat Jan 24 00:44:21 UTC 2009
Module: Mesa
Branch: master
Commit: e082314cab42f43b0438603a282f01920004e6f0
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=e082314cab42f43b0438603a282f01920004e6f0
Author: Brian Paul <brianp at vmware.com>
Date: Fri Jan 23 17:30:33 2009 -0700
mesa: update state setup/validation for GL_NV_texture_env_combine4
---
src/mesa/main/texstate.c | 25 ++++++++++++++++++-------
1 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/src/mesa/main/texstate.c b/src/mesa/main/texstate.c
index 9bfb7e0..7cddec0 100644
--- a/src/mesa/main/texstate.c
+++ b/src/mesa/main/texstate.c
@@ -53,10 +53,10 @@
*/
static const struct gl_tex_env_combine_state default_combine_state = {
GL_MODULATE, GL_MODULATE,
- { GL_TEXTURE, GL_PREVIOUS, GL_CONSTANT },
- { GL_TEXTURE, GL_PREVIOUS, GL_CONSTANT },
- { GL_SRC_COLOR, GL_SRC_COLOR, GL_SRC_ALPHA },
- { GL_SRC_ALPHA, GL_SRC_ALPHA, GL_SRC_ALPHA },
+ { GL_TEXTURE, GL_PREVIOUS, GL_CONSTANT, GL_CONSTANT },
+ { GL_TEXTURE, GL_PREVIOUS, GL_CONSTANT, GL_CONSTANT },
+ { GL_SRC_COLOR, GL_SRC_COLOR, GL_SRC_ALPHA, GL_SRC_ALPHA },
+ { GL_SRC_ALPHA, GL_SRC_ALPHA, GL_SRC_ALPHA, GL_SRC_ALPHA },
0, 0,
2, 2
};
@@ -551,7 +551,8 @@ update_texture_state( GLcontext *ctx )
if (texUnit->_ReallyEnabled)
ctx->Texture._EnabledUnits |= (1 << unit);
- if (texUnit->EnvMode == GL_COMBINE) {
+ if (texUnit->EnvMode == GL_COMBINE ||
+ texUnit->EnvMode == GL_COMBINE4_NV) {
texUnit->_CurrentCombine = & texUnit->Combine;
}
else {
@@ -572,9 +573,14 @@ update_texture_state( GLcontext *ctx )
case GL_REPLACE:
texUnit->_CurrentCombine->_NumArgsRGB = 1;
break;
- case GL_MODULATE:
case GL_ADD:
case GL_ADD_SIGNED:
+ if (texUnit->EnvMode == GL_COMBINE4_NV)
+ texUnit->_CurrentCombine->_NumArgsRGB = 4;
+ else
+ texUnit->_CurrentCombine->_NumArgsRGB = 2;
+ break;
+ case GL_MODULATE:
case GL_SUBTRACT:
case GL_DOT3_RGB:
case GL_DOT3_RGBA:
@@ -598,9 +604,14 @@ update_texture_state( GLcontext *ctx )
case GL_REPLACE:
texUnit->_CurrentCombine->_NumArgsA = 1;
break;
- case GL_MODULATE:
case GL_ADD:
case GL_ADD_SIGNED:
+ if (texUnit->EnvMode == GL_COMBINE4_NV)
+ texUnit->_CurrentCombine->_NumArgsA = 4;
+ else
+ texUnit->_CurrentCombine->_NumArgsA = 2;
+ break;
+ case GL_MODULATE:
case GL_SUBTRACT:
texUnit->_CurrentCombine->_NumArgsA = 2;
break;
More information about the mesa-commit
mailing list