/**
* Bit flags for each type of texture object
- * Used for Texture.Unit[]._ReallyEnabled flags.
*/
/*@{*/
#define TEXTURE_2D_MULTISAMPLE_BIT (1 << TEXTURE_2D_MULTISAMPLE_INDEX)
struct gl_texture_unit
{
GLbitfield Enabled; /**< bitmask of TEXTURE_*_BIT flags */
- GLbitfield _ReallyEnabled; /**< 0 or exactly one of TEXTURE_*_BIT flags */
GLenum EnvMode; /**< GL_MODULATE, GL_DECAL, GL_BLEND, etc. */
GLclampf EnvColor[4];
/** Bitwise-OR of all Texture.Unit[i]._GenFlags */
GLbitfield _GenFlags;
- /** Upper bound on _ReallyEnabled texunits. */
+ /** Largest index of a texture unit with _Current != NULL. */
GLint _MaxEnabledTexImageUnit;
};
enabledTargets |= enabledTargetsByStage[i];
}
- texUnit->_ReallyEnabled = 0x0;
-
if (enabledTargets == 0x0) {
_mesa_reference_texobj(&texUnit->_Current, NULL);
/* neither vertex nor fragment processing uses this unit */
_mesa_test_texobj_completeness(ctx, texObj);
}
if (_mesa_is_texture_complete(texObj, sampler)) {
- texUnit->_ReallyEnabled = 1 << texIndex;
_mesa_reference_texobj(&texUnit->_Current, texObj);
break;
}
}
}
- if (!texUnit->_ReallyEnabled) {
+ if (texIndex == NUM_TEXTURE_TARGETS) {
if (prog[MESA_SHADER_FRAGMENT]) {
/* If we get here it means the shader is expecting a texture
* object, but there isn't one (or it's incomplete). Use the
}
_mesa_reference_texobj(&texUnit->_Current, texObj);
- texUnit->_ReallyEnabled = 1 << texTarget;
}
else {
/* fixed-function: texture unit is really disabled */