*
**************************************************************************/
-#ifndef SP_DEFINES_H
-#define SP_DEFINES_H
-
-#define SP_BLENDFACTOR_ONE 0x1
-#define SP_BLENDFACTOR_SRC_COLOR 0x2
-#define SP_BLENDFACTOR_SRC_ALPHA 0x3
-#define SP_BLENDFACTOR_DST_ALPHA 0x4
-#define SP_BLENDFACTOR_DST_COLOR 0x5
-#define SP_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6
-#define SP_BLENDFACTOR_CONST_COLOR 0x7
-#define SP_BLENDFACTOR_CONST_ALPHA 0x8
-#define SP_BLENDFACTOR_SRC1_COLOR 0x9
-#define SP_BLENDFACTOR_SRC1_ALPHA 0x0A
-#define SP_BLENDFACTOR_ZERO 0x11
-#define SP_BLENDFACTOR_INV_SRC_COLOR 0x12
-#define SP_BLENDFACTOR_INV_SRC_ALPHA 0x13
-#define SP_BLENDFACTOR_INV_DST_ALPHA 0x14
-#define SP_BLENDFACTOR_INV_DST_COLOR 0x15
-#define SP_BLENDFACTOR_INV_CONST_COLOR 0x17
-#define SP_BLENDFACTOR_INV_CONST_ALPHA 0x18
-#define SP_BLENDFACTOR_INV_SRC1_COLOR 0x19
-#define SP_BLENDFACTOR_INV_SRC1_ALPHA 0x1A
-
-#define SP_BLEND_ADD 0
-#define SP_BLEND_SUBTRACT 1
-#define SP_BLEND_REVERSE_SUBTRACT 2
-#define SP_BLEND_MIN 3
-#define SP_BLEND_MAX 4
-
-#define SP_LOGICOP_CLEAR 0
-#define SP_LOGICOP_NOR 1
-#define SP_LOGICOP_AND_INVERTED 2
-#define SP_LOGICOP_COPY_INVERTED 3
-#define SP_LOGICOP_AND_REVERSE 4
-#define SP_LOGICOP_INVERT 5
-#define SP_LOGICOP_XOR 6
-#define SP_LOGICOP_NAND 7
-#define SP_LOGICOP_AND 8
-#define SP_LOGICOP_EQUIV 9
-#define SP_LOGICOP_NOOP 10
-#define SP_LOGICOP_OR_INVERTED 11
-#define SP_LOGICOP_COPY 12
-#define SP_LOGICOP_OR_REVERSE 13
-#define SP_LOGICOP_OR 14
-#define SP_LOGICOP_SET 15
-
-#define SP_STENCIL_FUNC_NEVER 0
-#define SP_STENCIL_FUNC_LESS 1
-#define SP_STENCIL_FUNC_EQUAL 2
-#define SP_STENCIL_FUNC_LEQUAL 3
-#define SP_STENCIL_FUNC_GREATER 4
-#define SP_STENCIL_FUNC_NOTEQUAL 5
-#define SP_STENCIL_FUNC_GEQUAL 6
-#define SP_STENCIL_FUNC_ALWAYS 7
-
-#define SP_STENCIL_OP_KEEP 0
-#define SP_STENCIL_OP_ZERO 1
-#define SP_STENCIL_OP_REPLACE 2
-#define SP_STENCIL_OP_INCR 3
-#define SP_STENCIL_OP_DECR 4
-#define SP_STENCIL_OP_INCR_WRAP 5
-#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_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
-
-#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
+#ifndef PIPE_DEFINES_H
+#define PIPE_DEFINES_H
+
+#include "p_format.h"
+
+#define PIPE_BLENDFACTOR_ONE 0x1
+#define PIPE_BLENDFACTOR_SRC_COLOR 0x2
+#define PIPE_BLENDFACTOR_SRC_ALPHA 0x3
+#define PIPE_BLENDFACTOR_DST_ALPHA 0x4
+#define PIPE_BLENDFACTOR_DST_COLOR 0x5
+#define PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6
+#define PIPE_BLENDFACTOR_CONST_COLOR 0x7
+#define PIPE_BLENDFACTOR_CONST_ALPHA 0x8
+#define PIPE_BLENDFACTOR_SRC1_COLOR 0x9
+#define PIPE_BLENDFACTOR_SRC1_ALPHA 0x0A
+#define PIPE_BLENDFACTOR_ZERO 0x11
+#define PIPE_BLENDFACTOR_INV_SRC_COLOR 0x12
+#define PIPE_BLENDFACTOR_INV_SRC_ALPHA 0x13
+#define PIPE_BLENDFACTOR_INV_DST_ALPHA 0x14
+#define PIPE_BLENDFACTOR_INV_DST_COLOR 0x15
+#define PIPE_BLENDFACTOR_INV_CONST_COLOR 0x17
+#define PIPE_BLENDFACTOR_INV_CONST_ALPHA 0x18
+#define PIPE_BLENDFACTOR_INV_SRC1_COLOR 0x19
+#define PIPE_BLENDFACTOR_INV_SRC1_ALPHA 0x1A
+
+#define PIPE_BLEND_ADD 0
+#define PIPE_BLEND_SUBTRACT 1
+#define PIPE_BLEND_REVERSE_SUBTRACT 2
+#define PIPE_BLEND_MIN 3
+#define PIPE_BLEND_MAX 4
+
+#define PIPE_LOGICOP_CLEAR 0
+#define PIPE_LOGICOP_NOR 1
+#define PIPE_LOGICOP_AND_INVERTED 2
+#define PIPE_LOGICOP_COPY_INVERTED 3
+#define PIPE_LOGICOP_AND_REVERSE 4
+#define PIPE_LOGICOP_INVERT 5
+#define PIPE_LOGICOP_XOR 6
+#define PIPE_LOGICOP_NAND 7
+#define PIPE_LOGICOP_AND 8
+#define PIPE_LOGICOP_EQUIV 9
+#define PIPE_LOGICOP_NOOP 10
+#define PIPE_LOGICOP_OR_INVERTED 11
+#define PIPE_LOGICOP_COPY 12
+#define PIPE_LOGICOP_OR_REVERSE 13
+#define PIPE_LOGICOP_OR 14
+#define PIPE_LOGICOP_SET 15
+
+#define PIPE_MASK_R 0x1
+#define PIPE_MASK_G 0x2
+#define PIPE_MASK_B 0x4
+#define PIPE_MASK_A 0x8
+#define PIPE_MASK_RGBA 0xf
+
+
+/**
+ * Inequality functions. Used for depth test, stencil compare, alpha
+ * test, shadow compare, etc.
+ */
+#define PIPE_FUNC_NEVER 0
+#define PIPE_FUNC_LESS 1
+#define PIPE_FUNC_EQUAL 2
+#define PIPE_FUNC_LEQUAL 3
+#define PIPE_FUNC_GREATER 4
+#define PIPE_FUNC_NOTEQUAL 5
+#define PIPE_FUNC_GEQUAL 6
+#define PIPE_FUNC_ALWAYS 7
+
+/** Polygon fill mode */
+#define PIPE_POLYGON_MODE_FILL 0
+#define PIPE_POLYGON_MODE_LINE 1
+#define PIPE_POLYGON_MODE_POINT 2
+
+/** Polygon front/back window, also for culling */
+#define PIPE_WINDING_NONE 0
+#define PIPE_WINDING_CW 1
+#define PIPE_WINDING_CCW 2
+#define PIPE_WINDING_BOTH (PIPE_WINDING_CW | PIPE_WINDING_CCW)
+
+/** Stencil ops */
+#define PIPE_STENCIL_OP_KEEP 0
+#define PIPE_STENCIL_OP_ZERO 1
+#define PIPE_STENCIL_OP_REPLACE 2
+#define PIPE_STENCIL_OP_INCR 3
+#define PIPE_STENCIL_OP_DECR 4
+#define PIPE_STENCIL_OP_INCR_WRAP 5
+#define PIPE_STENCIL_OP_DECR_WRAP 6
+#define PIPE_STENCIL_OP_INVERT 7
+
+/** Texture types */
+#define PIPE_TEXTURE_1D 0
+#define PIPE_TEXTURE_2D 1
+#define PIPE_TEXTURE_3D 2
+#define PIPE_TEXTURE_CUBE 3
+
+#define PIPE_TEX_FACE_POS_X 0
+#define PIPE_TEX_FACE_NEG_X 1
+#define PIPE_TEX_FACE_POS_Y 2
+#define PIPE_TEX_FACE_NEG_Y 3
+#define PIPE_TEX_FACE_POS_Z 4
+#define PIPE_TEX_FACE_NEG_Z 5
+
+#define PIPE_TEX_WRAP_REPEAT 0
+#define PIPE_TEX_WRAP_CLAMP 1
+#define PIPE_TEX_WRAP_CLAMP_TO_EDGE 2
+#define PIPE_TEX_WRAP_CLAMP_TO_BORDER 3
+#define PIPE_TEX_WRAP_MIRROR_REPEAT 4
+#define PIPE_TEX_WRAP_MIRROR_CLAMP 5
+#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE 6
+#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER 7
+
+/* Between mipmaps, ie mipfilter
+ */
+#define PIPE_TEX_MIPFILTER_NEAREST 0
+#define PIPE_TEX_MIPFILTER_LINEAR 1
+#define PIPE_TEX_MIPFILTER_NONE 2
+
+/* Within a mipmap, ie min/mag filter
+ */
+#define PIPE_TEX_FILTER_NEAREST 0
+#define PIPE_TEX_FILTER_LINEAR 1
+//#define PIPE_TEX_FILTER_ANISO 2
+
+
+#define PIPE_TEX_COMPARE_NONE 0
+#define PIPE_TEX_COMPARE_R_TO_TEXTURE 1
+
+#define PIPE_TEX_FACE_POS_X 0
+#define PIPE_TEX_FACE_NEG_X 1
+#define PIPE_TEX_FACE_POS_Y 2
+#define PIPE_TEX_FACE_NEG_Y 3
+#define PIPE_TEX_FACE_POS_Z 4
+#define PIPE_TEX_FACE_NEG_Z 5
+#define PIPE_TEX_FACE_MAX 6
+
+/**
+ * Surface flags
+ */
+#define PIPE_SURFACE_FLAG_TEXTURE 0x1
+#define PIPE_SURFACE_FLAG_RENDER 0x2
+
+
+/**
+ * Buffer access flags
+ */
+#define PIPE_BUFFER_FLAG_READ 0x1
+#define PIPE_BUFFER_FLAG_WRITE 0x2
+
+
+/**
+ * Buffer usage flags
+ */
+#define PIPE_BUFFER_USAGE_PIXEL (1 << 0)
+#define PIPE_BUFFER_USAGE_VERTEX (1 << 1)
+#define PIPE_BUFFER_USAGE_INDEX (1 << 2)
+#define PIPE_BUFFER_USAGE_CONSTANT (1 << 3)
+/** Pipe driver custam usage flags should be greater or equal to this value */
+#define PIPE_BUFFER_USAGE_CUSTOM (1 << 16)
+
+/**
+ * Flush types:
+ */
+#define PIPE_FLUSH_RENDER_CACHE 0x1
+#define PIPE_FLUSH_TEXTURE_CACHE 0x2
+
+
+/**
+ * Shaders
+ */
+#define PIPE_SHADER_VERTEX 0
+#define PIPE_SHADER_FRAGMENT 1
+#define PIPE_SHADER_TYPES 2
+
+
+/**
+ * Primitive types:
+ */
+#define PIPE_PRIM_POINTS 0
+#define PIPE_PRIM_LINES 1
+#define PIPE_PRIM_LINE_LOOP 2
+#define PIPE_PRIM_LINE_STRIP 3
+#define PIPE_PRIM_TRIANGLES 4
+#define PIPE_PRIM_TRIANGLE_STRIP 5
+#define PIPE_PRIM_TRIANGLE_FAN 6
+#define PIPE_PRIM_QUADS 7
+#define PIPE_PRIM_QUAD_STRIP 8
+#define PIPE_PRIM_POLYGON 9
+
+
+/**
+ * Query object types
+ */
+#define PIPE_QUERY_OCCLUSION_COUNTER 0
+#define PIPE_QUERY_PRIMITIVES_GENERATED 1
+#define PIPE_QUERY_PRIMITIVES_EMITTED 2
+#define PIPE_QUERY_TYPES 3
+
+
+/**
+ * Point sprite coord modes
+ */
+#define PIPE_SPRITE_COORD_NONE 0
+#define PIPE_SPRITE_COORD_UPPER_LEFT 1
+#define PIPE_SPRITE_COORD_LOWER_LEFT 2
+
+
+/**
+ * Implementation capabilities/limits
+ * Passed to pipe->get_param()
+ * XXX this will need some fine tuning...
+ */
+#define PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS 1
+#define PIPE_CAP_NPOT_TEXTURES 2
+#define PIPE_CAP_TWO_SIDED_STENCIL 3
+#define PIPE_CAP_GLSL 4 /* XXX need something better */
+#define PIPE_CAP_S3TC 5
+#define PIPE_CAP_ANISOTROPIC_FILTER 6
+#define PIPE_CAP_POINT_SPRITE 7
+#define PIPE_CAP_MAX_RENDER_TARGETS 8
+#define PIPE_CAP_OCCLUSION_QUERY 9
+#define PIPE_CAP_TEXTURE_SHADOW_MAP 10
+#define PIPE_CAP_MAX_TEXTURE_2D_LEVELS 11
+#define PIPE_CAP_MAX_TEXTURE_3D_LEVELS 12
+#define PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS 13
#endif