added depth(Z) state support
authorBrian <brian.paul@tungstengraphics.com>
Wed, 30 May 2007 22:07:39 +0000 (16:07 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 30 May 2007 22:07:39 +0000 (16:07 -0600)
src/mesa/softpipe/sp_context.h
src/mesa/softpipe/sp_defines.h
src/mesa/softpipe/sp_state.h
src/mesa/softpipe/state_tracker/st_atom.h
src/mesa/softpipe/state_tracker/st_context.h

index e047a9330bdf640712d3da75bdd0508ae7222263..e2b678f80f7d1a1ff751dfeb26732b8cead734bc 100644 (file)
@@ -43,6 +43,9 @@ struct softpipe_context {
    void (*set_clip_state)( struct softpipe_context *,
                           const struct softpipe_clip_state * );
 
+   void (*set_depth_state)( struct softpipe_context *,
+                              const struct softpipe_depth_state * );
+
    void (*set_viewport)( struct softpipe_context *,
                         const struct softpipe_viewport * );
 
index bc88e3d71e2b004cd42a51a3ab769ba88a6a2088..e1c773a407769c2ac904dd2e0f9a99899f1341a6 100644 (file)
 #define SP_STENCIL_OP_DECR_WRAP  6
 #define SP_STENCIL_OP_INVERT     7
 
+#define SP_DEPTH_FUNC_NEVER    0
+#define SP_DEPTH_FUNC_LESS     1
+#define SP_DEPTH_FUNC_EQUAL    2
+#define SP_DEPTH_FUNC_LEQUAL   3
+#define SP_DEPTH_FUNC_GREATER  4
+#define SP_DEPTH_FUNC_NOTEQUAL 5
+#define SP_DEPTH_FUNC_GEQUAL   6
+#define SP_DEPTH_FUNC_ALWAYS   7
+
+
 #endif
index f7d904bffec108665a791eace67d595518a12210..634b9e98681f63eb84f42430707305f70336e4b0 100644 (file)
@@ -100,6 +100,15 @@ struct softpipe_constant_buffer {
 };
 
 
+struct softpipe_depth_state
+{
+   GLuint enabled:1;   /**< depth test enabled? */
+   GLuint writemask:1; /**< allow depth buffer writes? */
+   GLuint func:3;      /**< depth test func */
+   GLfloat clear;      /**< Clear value in [0,1] (XXX correct place?) */
+};
+
+
 struct softpipe_blend_state {   
    GLuint blend_enable:1; 
 
index 8dc7460d11634ab6ee4f6d3cacf83aed91f189d4..1d8da463368a69c0f35c87a56d4f793ce0a9f470 100644 (file)
@@ -46,6 +46,7 @@ void st_validate_state( struct st_context *st );
 
 const struct st_tracked_state st_update_cbuf;
 const struct st_tracked_state st_update_clip;
+const struct st_tracked_state st_update_depth;
 const struct st_tracked_state st_update_fs;
 const struct st_tracked_state st_update_setup;
 const struct st_tracked_state st_update_viewport;
index 5ff10c1b1fe627a192213fb7dca87e83fc11d87c..317d37737181329fdfb256e3c39e8c130d12d0ea 100644 (file)
@@ -71,6 +71,7 @@ struct st_context
       struct softpipe_blend_state  blend;
       struct softpipe_surface      cbuf;
       struct softpipe_clip_state   clip;
+      struct softpipe_depth_state  depth;
       struct softpipe_scissor_rect scissor;
       struct softpipe_poly_stipple poly_stipple;
       struct softpipe_stencil_state stencil;