aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/state_tracker/st_context.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2012-01-26 10:35:11 +0100
committermarha <marha@users.sourceforge.net>2012-01-26 10:35:11 +0100
commiteb4c088eb71f93b9639f4ff651523d794f1433f7 (patch)
tree5e95635c1768d7d8e640b298f6c6fbe38cd3c395 /mesalib/src/mesa/state_tracker/st_context.c
parente6432710d8a586386b3c7025e845cf4f80830da3 (diff)
downloadvcxsrv-eb4c088eb71f93b9639f4ff651523d794f1433f7.tar.gz
vcxsrv-eb4c088eb71f93b9639f4ff651523d794f1433f7.tar.bz2
vcxsrv-eb4c088eb71f93b9639f4ff651523d794f1433f7.zip
xwininfo xcb-proto mesa xserver git update 26 12 2012
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_context.c')
-rw-r--r--mesalib/src/mesa/state_tracker/st_context.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_context.c b/mesalib/src/mesa/state_tracker/st_context.c
index dc1d33f1d..a3fd4dbcb 100644
--- a/mesalib/src/mesa/state_tracker/st_context.c
+++ b/mesalib/src/mesa/state_tracker/st_context.c
@@ -76,6 +76,17 @@ void st_invalidate_state(struct gl_context * ctx, GLuint new_state)
{
struct st_context *st = st_context(ctx);
+ /* Replace _NEW_FRAG_CLAMP with ST_NEW_FRAGMENT_PROGRAM for the fallback. */
+ if (st->clamp_frag_color_in_shader && (new_state & _NEW_FRAG_CLAMP)) {
+ new_state &= ~_NEW_FRAG_CLAMP;
+ st->dirty.st |= ST_NEW_FRAGMENT_PROGRAM;
+ }
+
+ /* Update the vertex shader if ctx->Light._ClampVertexColor was changed. */
+ if (st->clamp_vert_color_in_shader && (new_state & _NEW_LIGHT)) {
+ st->dirty.st |= ST_NEW_VERTEX_PROGRAM;
+ }
+
st->dirty.mesa |= new_state;
st->dirty.st |= ST_NEW_MESA;