sketch out texture sampler state
authorBrian <brian.paul@tungstengraphics.com>
Wed, 30 May 2007 22:26:55 +0000 (16:26 -0600)
committerBrian <brian.paul@tungstengraphics.com>
Wed, 30 May 2007 22:26:55 +0000 (16:26 -0600)
src/mesa/softpipe/sp_defines.h
src/mesa/softpipe/sp_state.h

index e1c773a407769c2ac904dd2e0f9a99899f1341a6..c381865dab5adf9693e056864033c555d1995d3b 100644 (file)
@@ -89,6 +89,7 @@
 #define SP_STENCIL_OP_DECR_WRAP  6
 #define SP_STENCIL_OP_INVERT     7
 
+/* Note: same as stencil funcs.  Also used for shadow/depth compare */
 #define SP_DEPTH_FUNC_NEVER    0
 #define SP_DEPTH_FUNC_LESS     1
 #define SP_DEPTH_FUNC_EQUAL    2
 #define SP_DEPTH_FUNC_GEQUAL   6
 #define SP_DEPTH_FUNC_ALWAYS   7
 
+#define SP_TEX_WRAP_REPEAT                   0
+#define SP_TEX_WRAP_CLAMP                    1
+#define SP_TEX_WRAP_CLAMP_TO_EDGE            2
+#define SP_TEX_WRAP_CLAMP_TO_BORDER          3
+#define SP_TEX_WRAP_MIRROR_REPEAT            4
+#define SP_TEX_WRAP_MIRROR_CLAMP             5
+#define SP_TEX_WRAP_MIRROR_CLAMP_TO_EDGE     6
+#define SP_TEX_WRAP_MIRROR_CLAMP_TO_BORDER   7
+
+#define SP_TEX_FILTER_NEAREST                0
+#define SP_TEX_FILTER_LINEAR                 1
+#define SP_TEX_FILTER_NEAREST_MIPMAP_NEAREST 2
+#define SP_TEX_FILTER_NEAREST_MIPMAP_LINEAR  3
+#define SP_TEX_FILTER_LINEAR_MIPMAP_NEAREST  4
+#define SP_TEX_FILTER_LINEAR_MIPMAP_LINEAR   5
+
+#define SP_TEX_COMPARE_NONE          0
+#define SP_TEX_COMPARE_R_TO_TEXTURE  1
 
 #endif
index 634b9e98681f63eb84f42430707305f70336e4b0..150fa9fcadb9e8f5432e1974025f588e2f5cee1d 100644 (file)
@@ -157,4 +157,28 @@ struct softpipe_surface {
 };
 
 
+/**
+ * Texture sampler state.
+ */
+struct softpipe_sampler_state
+{
+   GLuint wrap_s:3;        /**< SP_TEX_WRAP_x */
+   GLuint wrap_t:3;        /**< SP_TEX_WRAP_x */
+   GLuint wrap_r:3;        /**< SP_TEX_WRAP_x */
+   GLuint min_filter:3;    /**< SP_TEX_FILTER_x */
+   GLuint mag_filter:1;    /**< SP_TEX_FILTER_LINEAR or _NEAREST */
+   GLfloat min_lod;
+   GLfloat max_lod;
+   GLfloat lod_bias;
+#if 0 /* need these? */
+   GLint BaseLevel;     /**< min mipmap level, OpenGL 1.2 */
+   GLint MaxLevel;      /**< max mipmap level, OpenGL 1.2 */
+#endif
+   GLfloat max_anisotropy;
+   GLuint compare:1;       /**< shadow/depth compare enabled? */
+   GLenum compare_mode:1;  /**< SP_TEX_COMPARE_x */
+   GLenum compare_func:3;  /**< SP_DEPTH_FUNC_x */
+   GLfloat shadow_ambient; /**< shadow test fail color/intensity */
+};
+
 #endif