On 01/27/2012 06:45 PM, Marek Olšák wrote:
Core Mesa does this for us, see update_two_size in state.c.
---
  src/mesa/state_tracker/st_atom_rasterizer.c |   24 +++---------------------
  1 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c 
b/src/mesa/state_tracker/st_atom_rasterizer.c
index 25799bf..204f505 100644
--- a/src/mesa/state_tracker/st_atom_rasterizer.c
+++ b/src/mesa/state_tracker/st_atom_rasterizer.c
@@ -90,28 +90,10 @@ static void update_raster_state( struct st_context *st )
     if (ctx->Light.ProvokingVertex == GL_FIRST_VERTEX_CONVENTION_EXT)
        raster->flatshade_first = 1;

-   /* _NEW_LIGHT | _NEW_PROGRAM
-    *
-    * Back-face colors can come from traditional lighting (when
-    * GL_LIGHT_MODEL_TWO_SIDE is set) or from vertex programs/shaders (when
-    * GL_VERTEX_PROGRAM_TWO_SIDE is set).  Note the logic here.
-    */
-   if (ctx->VertexProgram._Current) {
-      if (ctx->VertexProgram._Enabled ||
-          (ctx->Shader.CurrentVertexProgram&&
-           ctx->Shader.CurrentVertexProgram->LinkStatus)) {
-         /* user-defined vertex program or shader */
-         raster->light_twoside = ctx->VertexProgram.TwoSideEnabled;
-      }
-      else {
-         /* TNL-generated program */
-         raster->light_twoside = ctx->Light.Enabled&&  
ctx->Light.Model.TwoSide;
-      }
-   }
-   else if (ctx->Light.Enabled&&  ctx->Light.Model.TwoSide) {
-      raster->light_twoside = 1;
-   }
+   /* _NEW_LIGHT | _NEW_PROGRAM */
+   raster->light_twoside = ctx->VertexProgram._TwoSideEnabled;

+   /*_NEW_LIGHT | _NEW_BUFFERS */
     raster->clamp_vertex_color = !st->clamp_vert_color_in_shader&&
                                  ctx->Light._ClampVertexColor;


Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to