diff options
Diffstat (limited to 'src/gallium/include/pipe/p_defines.h')
-rw-r--r-- | src/gallium/include/pipe/p_defines.h | 334 |
1 files changed, 182 insertions, 152 deletions
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h index 610b92c2..a7cefc61 100644 --- a/src/gallium/include/pipe/p_defines.h +++ b/src/gallium/include/pipe/p_defines.h @@ -50,33 +50,37 @@ enum pipe_error { /* TODO */ }; +enum pipe_blendfactor { + PIPE_BLENDFACTOR_ONE = 1, + PIPE_BLENDFACTOR_SRC_COLOR, + PIPE_BLENDFACTOR_SRC_ALPHA, + PIPE_BLENDFACTOR_DST_ALPHA, + PIPE_BLENDFACTOR_DST_COLOR, + PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE, + PIPE_BLENDFACTOR_CONST_COLOR, + PIPE_BLENDFACTOR_CONST_ALPHA, + PIPE_BLENDFACTOR_SRC1_COLOR, + PIPE_BLENDFACTOR_SRC1_ALPHA, + + PIPE_BLENDFACTOR_ZERO = 0x11, + PIPE_BLENDFACTOR_INV_SRC_COLOR, + PIPE_BLENDFACTOR_INV_SRC_ALPHA, + PIPE_BLENDFACTOR_INV_DST_ALPHA, + PIPE_BLENDFACTOR_INV_DST_COLOR, + + PIPE_BLENDFACTOR_INV_CONST_COLOR = 0x17, + PIPE_BLENDFACTOR_INV_CONST_ALPHA, + PIPE_BLENDFACTOR_INV_SRC1_COLOR, + PIPE_BLENDFACTOR_INV_SRC1_ALPHA, +}; -#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 - +enum pipe_blend_func { + PIPE_BLEND_ADD, + PIPE_BLEND_SUBTRACT, + PIPE_BLEND_REVERSE_SUBTRACT, + PIPE_BLEND_MIN, + PIPE_BLEND_MAX, +}; enum pipe_logicop { PIPE_LOGICOP_CLEAR, @@ -112,19 +116,23 @@ enum pipe_logicop { * 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 +enum pipe_compare_func { + PIPE_FUNC_NEVER, + PIPE_FUNC_LESS, + PIPE_FUNC_EQUAL, + PIPE_FUNC_LEQUAL, + PIPE_FUNC_GREATER, + PIPE_FUNC_NOTEQUAL, + PIPE_FUNC_GEQUAL, + PIPE_FUNC_ALWAYS, +}; /** Polygon fill mode */ -#define PIPE_POLYGON_MODE_FILL 0 -#define PIPE_POLYGON_MODE_LINE 1 -#define PIPE_POLYGON_MODE_POINT 2 +enum { + PIPE_POLYGON_MODE_FILL, + PIPE_POLYGON_MODE_LINE, + PIPE_POLYGON_MODE_POINT, +}; /** Polygon face specification, eg for culling */ #define PIPE_FACE_NONE 0 @@ -133,60 +141,73 @@ enum pipe_logicop { #define PIPE_FACE_FRONT_AND_BACK (PIPE_FACE_FRONT | PIPE_FACE_BACK) /** 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 +enum pipe_stencil_op { + PIPE_STENCIL_OP_KEEP, + PIPE_STENCIL_OP_ZERO, + PIPE_STENCIL_OP_REPLACE, + PIPE_STENCIL_OP_INCR, + PIPE_STENCIL_OP_DECR, + PIPE_STENCIL_OP_INCR_WRAP, + PIPE_STENCIL_OP_DECR_WRAP, + PIPE_STENCIL_OP_INVERT, +}; /** Texture types. * See the documentation for info on PIPE_TEXTURE_RECT vs PIPE_TEXTURE_2D */ -enum pipe_texture_target { - PIPE_BUFFER = 0, - PIPE_TEXTURE_1D = 1, - PIPE_TEXTURE_2D = 2, - PIPE_TEXTURE_3D = 3, - PIPE_TEXTURE_CUBE = 4, - PIPE_TEXTURE_RECT = 5, - PIPE_TEXTURE_1D_ARRAY = 6, - PIPE_TEXTURE_2D_ARRAY = 7, - PIPE_TEXTURE_CUBE_ARRAY = 8, - PIPE_MAX_TEXTURE_TYPES -}; - -#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 - -#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 +enum pipe_texture_target +{ + PIPE_BUFFER, + PIPE_TEXTURE_1D, + PIPE_TEXTURE_2D, + PIPE_TEXTURE_3D, + PIPE_TEXTURE_CUBE, + PIPE_TEXTURE_RECT, + PIPE_TEXTURE_1D_ARRAY, + PIPE_TEXTURE_2D_ARRAY, + PIPE_TEXTURE_CUBE_ARRAY, + PIPE_MAX_TEXTURE_TYPES, +}; + +enum pipe_tex_face { + PIPE_TEX_FACE_POS_X, + PIPE_TEX_FACE_NEG_X, + PIPE_TEX_FACE_POS_Y, + PIPE_TEX_FACE_NEG_Y, + PIPE_TEX_FACE_POS_Z, + PIPE_TEX_FACE_NEG_Z, + PIPE_TEX_FACE_MAX, +}; + +enum pipe_tex_wrap { + PIPE_TEX_WRAP_REPEAT, + PIPE_TEX_WRAP_CLAMP, + PIPE_TEX_WRAP_CLAMP_TO_EDGE, + PIPE_TEX_WRAP_CLAMP_TO_BORDER, + PIPE_TEX_WRAP_MIRROR_REPEAT, + PIPE_TEX_WRAP_MIRROR_CLAMP, + PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE, + PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER, +}; /* Between mipmaps, ie mipfilter */ -#define PIPE_TEX_MIPFILTER_NEAREST 0 -#define PIPE_TEX_MIPFILTER_LINEAR 1 -#define PIPE_TEX_MIPFILTER_NONE 2 +enum pipe_tex_mipfilter { + PIPE_TEX_MIPFILTER_NEAREST, + PIPE_TEX_MIPFILTER_LINEAR, + PIPE_TEX_MIPFILTER_NONE, +}; /* Within a mipmap, ie min/mag filter */ -#define PIPE_TEX_FILTER_NEAREST 0 -#define PIPE_TEX_FILTER_LINEAR 1 +enum pipe_tex_filter { + PIPE_TEX_FILTER_NEAREST, + PIPE_TEX_FILTER_LINEAR, +}; -#define PIPE_TEX_COMPARE_NONE 0 -#define PIPE_TEX_COMPARE_R_TO_TEXTURE 1 +enum pipe_tex_compare { + PIPE_TEX_COMPARE_NONE, + PIPE_TEX_COMPARE_R_TO_TEXTURE, +}; /** * Clear buffer bits @@ -404,105 +425,114 @@ enum pipe_flush_flags { #define PIPE_RESOURCE_FLAG_DRV_PRIV (1 << 16) /* driver/winsys private */ #define PIPE_RESOURCE_FLAG_ST_PRIV (1 << 24) /* state-tracker/winsys private */ -/* Hint about the expected lifecycle of a resource. +/** + * Hint about the expected lifecycle of a resource. * Sorted according to GPU vs CPU access. */ -#define PIPE_USAGE_DEFAULT 0 /* fast GPU access */ -#define PIPE_USAGE_IMMUTABLE 1 /* fast GPU access, immutable */ -#define PIPE_USAGE_DYNAMIC 2 /* uploaded data is used multiple times */ -#define PIPE_USAGE_STREAM 3 /* uploaded data is used once */ -#define PIPE_USAGE_STAGING 4 /* fast CPU access */ - +enum pipe_resource_usage { + PIPE_USAGE_DEFAULT, /* fast GPU access */ + PIPE_USAGE_IMMUTABLE, /* fast GPU access, immutable */ + PIPE_USAGE_DYNAMIC, /* uploaded data is used multiple times */ + PIPE_USAGE_STREAM, /* uploaded data is used once */ + PIPE_USAGE_STAGING, /* fast CPU access */ +}; /** * Shaders */ -#define PIPE_SHADER_VERTEX 0 -#define PIPE_SHADER_FRAGMENT 1 -#define PIPE_SHADER_GEOMETRY 2 -#define PIPE_SHADER_TESS_CTRL 3 -#define PIPE_SHADER_TESS_EVAL 4 -#define PIPE_SHADER_COMPUTE 5 -#define PIPE_SHADER_TYPES 6 - +enum pipe_shader_type { + PIPE_SHADER_VERTEX, + PIPE_SHADER_FRAGMENT, + PIPE_SHADER_GEOMETRY, + PIPE_SHADER_TESS_CTRL, + PIPE_SHADER_TESS_EVAL, + PIPE_SHADER_COMPUTE, + PIPE_SHADER_TYPES, + PIPE_SHADER_INVALID, +}; /** * 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 -#define PIPE_PRIM_LINES_ADJACENCY 10 -#define PIPE_PRIM_LINE_STRIP_ADJACENCY 11 -#define PIPE_PRIM_TRIANGLES_ADJACENCY 12 -#define PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY 13 -#define PIPE_PRIM_PATCHES 14 -#define PIPE_PRIM_MAX 15 - +enum pipe_prim_type { + PIPE_PRIM_POINTS, + PIPE_PRIM_LINES, + PIPE_PRIM_LINE_LOOP, + PIPE_PRIM_LINE_STRIP, + PIPE_PRIM_TRIANGLES, + PIPE_PRIM_TRIANGLE_STRIP, + PIPE_PRIM_TRIANGLE_FAN, + PIPE_PRIM_QUADS, + PIPE_PRIM_QUAD_STRIP, + PIPE_PRIM_POLYGON, + PIPE_PRIM_LINES_ADJACENCY, + PIPE_PRIM_LINE_STRIP_ADJACENCY, + PIPE_PRIM_TRIANGLES_ADJACENCY, + PIPE_PRIM_TRIANGLE_STRIP_ADJACENCY, + PIPE_PRIM_PATCHES, + PIPE_PRIM_MAX, +} ENUM_PACKED; /** * Tessellator spacing types */ -#define PIPE_TESS_SPACING_FRACTIONAL_ODD 0 -#define PIPE_TESS_SPACING_FRACTIONAL_EVEN 1 -#define PIPE_TESS_SPACING_EQUAL 2 +enum pipe_tess_spacing { + PIPE_TESS_SPACING_FRACTIONAL_ODD, + PIPE_TESS_SPACING_FRACTIONAL_EVEN, + PIPE_TESS_SPACING_EQUAL, +}; /** * Query object types */ -#define PIPE_QUERY_OCCLUSION_COUNTER 0 -#define PIPE_QUERY_OCCLUSION_PREDICATE 1 -#define PIPE_QUERY_TIMESTAMP 2 -#define PIPE_QUERY_TIMESTAMP_DISJOINT 3 -#define PIPE_QUERY_TIME_ELAPSED 4 -#define PIPE_QUERY_PRIMITIVES_GENERATED 5 -#define PIPE_QUERY_PRIMITIVES_EMITTED 6 -#define PIPE_QUERY_SO_STATISTICS 7 -#define PIPE_QUERY_SO_OVERFLOW_PREDICATE 8 -#define PIPE_QUERY_GPU_FINISHED 9 -#define PIPE_QUERY_PIPELINE_STATISTICS 10 -#define PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE 11 -#define PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE 12 -#define PIPE_QUERY_TYPES 13 - -/* start of driver queries, - * see pipe_screen::get_driver_query_info */ -#define PIPE_QUERY_DRIVER_SPECIFIC 256 - +enum pipe_query_type { + PIPE_QUERY_OCCLUSION_COUNTER, + PIPE_QUERY_OCCLUSION_PREDICATE, + PIPE_QUERY_TIMESTAMP, + PIPE_QUERY_TIMESTAMP_DISJOINT, + PIPE_QUERY_TIME_ELAPSED, + PIPE_QUERY_PRIMITIVES_GENERATED, + PIPE_QUERY_PRIMITIVES_EMITTED, + PIPE_QUERY_SO_STATISTICS, + PIPE_QUERY_SO_OVERFLOW_PREDICATE, + PIPE_QUERY_GPU_FINISHED, + PIPE_QUERY_PIPELINE_STATISTICS, + PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE, + PIPE_QUERY_SO_OVERFLOW_ANY_PREDICATE, + PIPE_QUERY_TYPES, + /* start of driver queries, see pipe_screen::get_driver_query_info */ + PIPE_QUERY_DRIVER_SPECIFIC = 256, +}; /** * Conditional rendering modes */ -#define PIPE_RENDER_COND_WAIT 0 -#define PIPE_RENDER_COND_NO_WAIT 1 -#define PIPE_RENDER_COND_BY_REGION_WAIT 2 -#define PIPE_RENDER_COND_BY_REGION_NO_WAIT 3 - +enum pipe_render_cond_flag { + PIPE_RENDER_COND_WAIT, + PIPE_RENDER_COND_NO_WAIT, + PIPE_RENDER_COND_BY_REGION_WAIT, + PIPE_RENDER_COND_BY_REGION_NO_WAIT, +}; /** * Point sprite coord modes */ -#define PIPE_SPRITE_COORD_UPPER_LEFT 0 -#define PIPE_SPRITE_COORD_LOWER_LEFT 1 - +enum pipe_sprite_coord_mode { + PIPE_SPRITE_COORD_UPPER_LEFT, + PIPE_SPRITE_COORD_LOWER_LEFT, +}; /** * Texture swizzles */ -#define PIPE_SWIZZLE_RED 0 -#define PIPE_SWIZZLE_GREEN 1 -#define PIPE_SWIZZLE_BLUE 2 -#define PIPE_SWIZZLE_ALPHA 3 -#define PIPE_SWIZZLE_ZERO 4 -#define PIPE_SWIZZLE_ONE 5 - +enum pipe_swizzle { + PIPE_SWIZZLE_RED, + PIPE_SWIZZLE_GREEN, + PIPE_SWIZZLE_BLUE, + PIPE_SWIZZLE_ALPHA, + PIPE_SWIZZLE_ZERO, + PIPE_SWIZZLE_ONE, +}; #define PIPE_TIMEOUT_INFINITE 0xffffffffffffffffull @@ -624,9 +654,9 @@ enum pipe_cap { enum pipe_endian { PIPE_ENDIAN_LITTLE = 0, PIPE_ENDIAN_BIG = 1, -#if defined(PIPE_ARCH_LITTLE_ENDIAN) +#if UTIL_ARCH_LITTLE_ENDIAN PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_LITTLE -#elif defined(PIPE_ARCH_BIG_ENDIAN) +#elif UTIL_ARCH_BIG_ENDIAN PIPE_ENDIAN_NATIVE = PIPE_ENDIAN_BIG #endif }; |