From: Ian Romanick <ian.d.roman...@intel.com> NOTE: This is a candidate for the 9.0 branch.
Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> --- src/mesa/main/state.c | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index fb8b71c..f082c6d 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -465,18 +465,20 @@ _mesa_update_state_locked( struct gl_context *ctx ) if (MESA_VERBOSE & VERBOSE_STATE) _mesa_print_state("_mesa_update_state", new_state); - /* Determine which state flags effect vertex/fragment program state */ - if (ctx->FragmentProgram._MaintainTexEnvProgram) { - prog_flags |= (_NEW_BUFFERS | _NEW_TEXTURE | _NEW_FOG | - _NEW_VARYING_VP_INPUTS | _NEW_LIGHT | _NEW_POINT | - _NEW_RENDERMODE | _NEW_PROGRAM | _NEW_FRAG_CLAMP | - _NEW_COLOR); - } - if (ctx->VertexProgram._MaintainTnlProgram) { - prog_flags |= (_NEW_VARYING_VP_INPUTS | _NEW_TEXTURE | - _NEW_TEXTURE_MATRIX | _NEW_TRANSFORM | _NEW_POINT | - _NEW_FOG | _NEW_LIGHT | - _MESA_NEW_NEED_EYE_COORDS); + if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { + /* Determine which state flags effect vertex/fragment program state */ + if (ctx->FragmentProgram._MaintainTexEnvProgram) { + prog_flags |= (_NEW_BUFFERS | _NEW_TEXTURE | _NEW_FOG | + _NEW_VARYING_VP_INPUTS | _NEW_LIGHT | _NEW_POINT | + _NEW_RENDERMODE | _NEW_PROGRAM | _NEW_FRAG_CLAMP | + _NEW_COLOR); + } + if (ctx->VertexProgram._MaintainTnlProgram) { + prog_flags |= (_NEW_VARYING_VP_INPUTS | _NEW_TEXTURE | + _NEW_TEXTURE_MATRIX | _NEW_TRANSFORM | _NEW_POINT | + _NEW_FOG | _NEW_LIGHT | + _MESA_NEW_NEED_EYE_COORDS); + } } /* @@ -486,8 +488,10 @@ _mesa_update_state_locked( struct gl_context *ctx ) if (new_state & prog_flags) update_program_enables( ctx ); - if (new_state & (_NEW_MODELVIEW|_NEW_PROJECTION)) - _mesa_update_modelview_project( ctx, new_state ); + if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { + if (new_state & (_NEW_MODELVIEW|_NEW_PROJECTION)) + _mesa_update_modelview_project( ctx, new_state ); + } if (new_state & (_NEW_PROGRAM|_NEW_TEXTURE|_NEW_TEXTURE_MATRIX)) _mesa_update_texture( ctx, new_state ); @@ -501,8 +505,10 @@ _mesa_update_state_locked( struct gl_context *ctx ) if (new_state & _NEW_POLYGON) update_polygon( ctx ); - if (new_state & _NEW_LIGHT) - _mesa_update_lighting( ctx ); + if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { + if (new_state & _NEW_LIGHT) + _mesa_update_lighting( ctx ); + } if (new_state & (_NEW_LIGHT | _NEW_PROGRAM)) update_twoside( ctx ); @@ -516,8 +522,10 @@ _mesa_update_state_locked( struct gl_context *ctx ) if (new_state & _NEW_PIXEL) _mesa_update_pixel( ctx, new_state ); - if (new_state & _MESA_NEW_SEPARATE_SPECULAR) - update_separate_specular( ctx ); + if (ctx->API == API_OPENGL || ctx->API == API_OPENGLES) { + if (new_state & _MESA_NEW_SEPARATE_SPECULAR) + update_separate_specular( ctx ); + } if (new_state & (_NEW_BUFFERS | _NEW_VIEWPORT)) update_viewport_matrix(ctx); -- 1.7.11.7 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev