diff options
Diffstat (limited to 'mesalib/src/mesa/main/ff_fragment_shader.cpp')
-rw-r--r-- | mesalib/src/mesa/main/ff_fragment_shader.cpp | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/mesalib/src/mesa/main/ff_fragment_shader.cpp b/mesalib/src/mesa/main/ff_fragment_shader.cpp index 66c18fa16..605f3713e 100644 --- a/mesalib/src/mesa/main/ff_fragment_shader.cpp +++ b/mesalib/src/mesa/main/ff_fragment_shader.cpp @@ -42,6 +42,7 @@ extern "C" { #include "program/prog_statevars.h" #include "program/programopt.h" #include "texenvprogram.h" +#include "texobj.h" } #include "main/uniforms.h" #include "../glsl/glsl_types.h" @@ -290,18 +291,6 @@ need_saturate( GLuint mode ) } } - - -/** - * Translate TEXTURE_x_BIT to TEXTURE_x_INDEX. - */ -static GLuint translate_tex_src_bit( GLbitfield bit ) -{ - ASSERT(bit); - return ffs(bit) - 1; -} - - #define VERT_BIT_TEX_ANY (0xff << VERT_ATTRIB_TEX0) /** @@ -430,7 +419,7 @@ static GLuint make_state_key( struct gl_context *ctx, struct state_key *key ) const struct gl_sampler_object *samp; GLenum format; - if (!texUnit->_ReallyEnabled || !texUnit->Enabled) + if (!texUnit->_Current || !texUnit->Enabled) continue; samp = _mesa_get_samplerobj(ctx, i); @@ -441,8 +430,8 @@ static GLuint make_state_key( struct gl_context *ctx, struct state_key *key ) key->nr_enabled_units = i + 1; inputs_referenced |= VARYING_BIT_TEX(i); - key->unit[i].source_index = - translate_tex_src_bit(texUnit->_ReallyEnabled); + key->unit[i].source_index = _mesa_tex_target_to_index(ctx, + texObj->Target); key->unit[i].shadow = ((samp->CompareMode == GL_COMPARE_R_TO_TEXTURE) && |