mesa: fix fallthrough in glformats
[mesa.git] / src / mesa / state_tracker / st_atom_clip.c
index 8558d768faa00a06c23ef72698739756df19ac6b..0db3a5d543199af798c703825d652778e3365576 100644 (file)
@@ -1,6 +1,6 @@
 /**************************************************************************
  * 
- * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
+ * Copyright 2007 VMware, Inc.
  * All Rights Reserved.
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a
@@ -18,7 +18,7 @@
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
- * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
+ * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
  * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -27,7 +27,7 @@
 
  /*
   * Authors:
-  *   Keith Whitwell <keith@tungstengraphics.com>
+  *   Keith Whitwell <keithw@vmware.com>
   */
  
 
@@ -41,7 +41,7 @@
 
 /* Second state atom for user clip planes:
  */
-static void update_clip( struct st_context *st )
+void st_update_clip( struct st_context *st )
 {
    struct pipe_clip_state clip;
    const struct gl_context *ctx = st->ctx;
@@ -51,24 +51,18 @@ static void update_clip( struct st_context *st )
 
    /* if we have a vertex shader that writes clip vertex we need to pass
       the pre-projection transformed coordinates into the driver. */
-   if (st->vp) {
-      if (ctx->Shader.CurrentVertexProgram)
-         use_eye = TRUE;
-   }
+   if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX])
+      use_eye = TRUE;
 
+   /* _ClipUserPlane = _NEW_TRANSFORM | _NEW_PROJECTION
+    * EyeUserPlane = _NEW_TRANSFORM
+    */
    memcpy(clip.ucp,
           use_eye ? ctx->Transform.EyeUserPlane
                   : ctx->Transform._ClipUserPlane, sizeof(clip.ucp));
-   st->state.clip = clip;
-   cso_set_clip(st->cso_context, &clip);
-}
-
 
-const struct st_tracked_state st_update_clip = {
-   "st_update_clip",                                   /* name */
-   {                                                   /* dirty */
-      _NEW_TRANSFORM,                                   /* mesa */
-      ST_NEW_VERTEX_PROGRAM,                           /* st */
-   },
-   update_clip                                         /* update */
-};
+   if (memcmp(&st->state.clip, &clip, sizeof(clip)) != 0) {
+      st->state.clip = clip;
+      st->pipe->set_clip_state(st->pipe, &clip);
+   }
+}