_mesa_update_modelview_project( ctx, new_state );
if (new_state & _NEW_TEXTURE_MATRIX)
- _mesa_update_texture_matrices(ctx);
+ new_state |= _mesa_update_texture_matrices(ctx);
if (new_state & (_NEW_TEXTURE_OBJECT | _NEW_TEXTURE_STATE | _NEW_PROGRAM))
new_state |= _mesa_update_texture_state(ctx);
}
if (ctx->VertexProgram._UsesTnlProgram) {
- prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_TEXTURE_MATRIX |
- _NEW_TRANSFORM | _NEW_POINT | _NEW_FOG;
+ prog_flags |= _NEW_FF_VERT_PROGRAM | _NEW_TRANSFORM | _NEW_POINT |
+ _NEW_FOG;
}
if (new_state & prog_flags) {
*
* \param ctx GL context.
*/
-void
+GLbitfield
_mesa_update_texture_matrices(struct gl_context *ctx)
{
GLuint u;
+ GLbitfield old_texmat_enabled = ctx->Texture._TexMatEnabled;
ctx->Texture._TexMatEnabled = 0x0;
ctx->Texture._TexMatEnabled |= ENABLE_TEXMAT(u);
}
}
+
+ if (old_texmat_enabled != ctx->Texture._TexMatEnabled)
+ return _NEW_FF_VERT_PROGRAM | _NEW_FF_FRAG_PROGRAM;
+
+ return 0;
}