p_defines.h revision 1c22c0452526aaae13a2e618ec6e46327609d9c2
17234550cf759fdf3ab325465090c7f5eb3b5d320Brian/**************************************************************************
27234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
37234550cf759fdf3ab325465090c7f5eb3b5d320Brian * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas.
47234550cf759fdf3ab325465090c7f5eb3b5d320Brian * All Rights Reserved.
57234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
67234550cf759fdf3ab325465090c7f5eb3b5d320Brian * Permission is hereby granted, free of charge, to any person obtaining a
77234550cf759fdf3ab325465090c7f5eb3b5d320Brian * copy of this software and associated documentation files (the
87234550cf759fdf3ab325465090c7f5eb3b5d320Brian * "Software"), to deal in the Software without restriction, including
97234550cf759fdf3ab325465090c7f5eb3b5d320Brian * without limitation the rights to use, copy, modify, merge, publish,
107234550cf759fdf3ab325465090c7f5eb3b5d320Brian * distribute, sub license, and/or sell copies of the Software, and to
117234550cf759fdf3ab325465090c7f5eb3b5d320Brian * permit persons to whom the Software is furnished to do so, subject to
127234550cf759fdf3ab325465090c7f5eb3b5d320Brian * the following conditions:
137234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
147234550cf759fdf3ab325465090c7f5eb3b5d320Brian * The above copyright notice and this permission notice (including the
157234550cf759fdf3ab325465090c7f5eb3b5d320Brian * next paragraph) shall be included in all copies or substantial portions
167234550cf759fdf3ab325465090c7f5eb3b5d320Brian * of the Software.
177234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
187234550cf759fdf3ab325465090c7f5eb3b5d320Brian * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
197234550cf759fdf3ab325465090c7f5eb3b5d320Brian * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
207234550cf759fdf3ab325465090c7f5eb3b5d320Brian * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
217234550cf759fdf3ab325465090c7f5eb3b5d320Brian * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
227234550cf759fdf3ab325465090c7f5eb3b5d320Brian * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
237234550cf759fdf3ab325465090c7f5eb3b5d320Brian * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
247234550cf759fdf3ab325465090c7f5eb3b5d320Brian * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
257234550cf759fdf3ab325465090c7f5eb3b5d320Brian *
267234550cf759fdf3ab325465090c7f5eb3b5d320Brian **************************************************************************/
277234550cf759fdf3ab325465090c7f5eb3b5d320Brian
28943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#ifndef PIPE_DEFINES_H
29943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_DEFINES_H
308e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
3126df9d1a304f03e9692e7bac0a3bc83330f30c6amichal#include "p_format.h"
3226df9d1a304f03e9692e7bac0a3bc83330f30c6amichal
33e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca#ifdef __cplusplus
34e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonsecaextern "C" {
35e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca#endif
36e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca
37943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_ONE                 0x1
38943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_COLOR           0x2
39943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_ALPHA           0x3
40943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_DST_ALPHA           0x4
41943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_DST_COLOR           0x5
42943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE  0x6
43943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_CONST_COLOR         0x7
44943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_CONST_ALPHA         0x8
45943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC1_COLOR          0x9
46943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_SRC1_ALPHA          0x0A
47943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_ZERO                0x11
48943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC_COLOR       0x12
49943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC_ALPHA       0x13
50943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_DST_ALPHA       0x14
51943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_DST_COLOR       0x15
52943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_CONST_COLOR     0x17
53943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_CONST_ALPHA     0x18
54943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC1_COLOR      0x19
55943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLENDFACTOR_INV_SRC1_ALPHA      0x1A
568e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
57943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_ADD               0
58943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_SUBTRACT          1
59943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_REVERSE_SUBTRACT  2
60943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_MIN               3
61943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_BLEND_MAX               4
628e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
63943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_CLEAR            0
64943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NOR              1
65943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND_INVERTED     2
66943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_COPY_INVERTED    3
67943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND_REVERSE      4
68943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_INVERT           5
69943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_XOR              6
70943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NAND             7
71943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_AND              8
72943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_EQUIV            9
73943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_NOOP             10
74943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR_INVERTED      11
75943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_COPY             12
76943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR_REVERSE       13
77943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_OR               14
78943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_LOGICOP_SET              15
798e4a95a93d15a6707a29454cd47e10b08314cda2Keith Whitwell
8086352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_R  0x1
8186352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_G  0x2
8286352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_B  0x4
8386352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian#define PIPE_MASK_A  0x8
845936b439e88308a2eabb8a5570e91dd8fff89397Brian#define PIPE_MASK_RGBA 0xf
855936b439e88308a2eabb8a5570e91dd8fff89397Brian
8686352ff70d8c9a31fe0ebb4d02ce4bb4644fe54aBrian
87efe6c50089e945902917c8091c92ce3a6155caacBrian/**
88efe6c50089e945902917c8091c92ce3a6155caacBrian * Inequality functions.  Used for depth test, stencil compare, alpha
89efe6c50089e945902917c8091c92ce3a6155caacBrian * test, shadow compare, etc.
90efe6c50089e945902917c8091c92ce3a6155caacBrian */
91efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_NEVER    0
92efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_LESS     1
93efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_EQUAL    2
94efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_LEQUAL   3
95efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_GREATER  4
96efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_NOTEQUAL 5
97efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_GEQUAL   6
98efe6c50089e945902917c8091c92ce3a6155caacBrian#define PIPE_FUNC_ALWAYS   7
99008fb50174fb6717f3b71836427bc6be4e44613cBrian
1002137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian/** Polygon fill mode */
1012137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_FILL  0
1022137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_LINE  1
1032137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian#define PIPE_POLYGON_MODE_POINT 2
1042137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian
105f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian/** Polygon front/back window, also for culling */
106f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_NONE 0
107f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_CW   1
108f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_CCW  2
109f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian#define PIPE_WINDING_BOTH (PIPE_WINDING_CW | PIPE_WINDING_CCW)
1102137e3053ec87e4463fdbd952537d1bbd1a3dbcdBrian
111f79c225d9e5adee6287a9bba35f014c3fe00d3f9Brian/** Stencil ops */
112943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_KEEP       0
113943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_ZERO       1
114943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_REPLACE    2
115943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INCR       3
116943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_DECR       4
117943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INCR_WRAP  5
118943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_DECR_WRAP  6
119943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_STENCIL_OP_INVERT     7
120008fb50174fb6717f3b71836427bc6be4e44613cBrian
121eb147ed775bedec9d849cdc817f208b5fe5eade3Brian/** Texture types */
1221c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzerenum pipe_texture_target {
1231c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzer   PIPE_TEXTURE_1D   = 0,
1241c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzer   PIPE_TEXTURE_2D   = 1,
1251c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzer   PIPE_TEXTURE_3D   = 2,
1261c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzer   PIPE_TEXTURE_CUBE = 3
1271c5f27a18b775b3784fcd265d60e0affa0b31581Michel Dänzer};
128eb147ed775bedec9d849cdc817f208b5fe5eade3Brian
129eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_X 0
130eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_X 1
131eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_Y 2
132eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_Y 3
133eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_POS_Z 4
134eb147ed775bedec9d849cdc817f208b5fe5eade3Brian#define PIPE_TEX_FACE_NEG_Z 5
135eb147ed775bedec9d849cdc817f208b5fe5eade3Brian
136943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_REPEAT                   0
137943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP                    1
138943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP_TO_EDGE            2
139943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_CLAMP_TO_BORDER          3
140943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_REPEAT            4
141943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP             5
142943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_EDGE     6
143943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_WRAP_MIRROR_CLAMP_TO_BORDER   7
14402a47549ad182d28d330063d4f452108e3a4b452Brian
14578b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell/* Between mipmaps, ie mipfilter
14678b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell */
14778b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_NEAREST  0
14878b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_LINEAR   1
14978b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_MIPFILTER_NONE     2
15078b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell
15178b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell/* Within a mipmap, ie min/mag filter
15278b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell */
15378b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_FILTER_NEAREST      0
15478b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell#define PIPE_TEX_FILTER_LINEAR       1
15598ae83d5cc73b61826823c915b5c59746c2e85c7Keith Whitwell#define PIPE_TEX_FILTER_ANISO        2
15678b1a29a0da8d1877408421df5012d37084a96deKeith Whitwell
15702a47549ad182d28d330063d4f452108e3a4b452Brian
158943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_COMPARE_NONE          0
159943964a1e5bad86bdceb0a06d60fb3b302ebce6aKeith Whitwell#define PIPE_TEX_COMPARE_R_TO_TEXTURE  1
1608f2888758129b0a40d71fa4ce10d606b4bcf7631Brian
16140a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_X   0
16240a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_X   1
16340a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_Y   2
16440a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_Y   3
16540a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_POS_Z   4
16640a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_NEG_Z   5
16740a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell#define PIPE_TEX_FACE_MAX     6
16840a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
1691a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca#define PIPE_TEXTURE_USAGE_RENDER_TARGET   0x1
1701a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca#define PIPE_TEXTURE_USAGE_DISPLAY_TARGET  0x2 /* ie a backbuffer */
1711a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca#define PIPE_TEXTURE_USAGE_PRIMARY         0x4 /* ie a frontbuffer */
1721a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca#define PIPE_TEXTURE_USAGE_DEPTH_STENCIL   0x8
1731a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca#define PIPE_TEXTURE_USAGE_SAMPLER         0x10
1741c22c0452526aaae13a2e618ec6e46327609d9c2Younes Manton/** Pipe driver custom usage flags should be greater or equal to this value */
1751c22c0452526aaae13a2e618ec6e46327609d9c2Younes Manton#define PIPE_TEXTURE_USAGE_CUSTOM          (1 << 16)
1761a8ceb3828c64fb758955c85a1d3d06f53f15ed5José Fonseca
1778aafc03b260ab8923f1b373f7effa75bcdb40a72José Fonseca#define PIPE_TEXTURE_GEOM_NON_SQUARE       0x1
1788aafc03b260ab8923f1b373f7effa75bcdb40a72José Fonseca#define PIPE_TEXTURE_GEOM_NON_POWER_OF_TWO 0x2
1799ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian
1809ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian
1819ac1a8d416c2bd50ca10186ca09f5e86f6fa4ce6Brian/**
1828e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell * Surface layout
1838e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell */
1848e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell#define PIPE_SURFACE_LAYOUT_LINEAR  0
1858e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell
1868e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell
1878e6a3807981bb96bb6747683dbc9f92ae7117dd2Keith Whitwell/**
188dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian * Surface status
189dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian */
190dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian#define PIPE_SURFACE_STATUS_UNDEFINED  0
191dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian#define PIPE_SURFACE_STATUS_DEFINED    1
192dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian#define PIPE_SURFACE_STATUS_CLEAR      2
193dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian
194dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian
195dd5a8d234b95c6f85d0a6ecb18db8aadefb71dbdBrian/**
196fa1a66d7fc4fd7854de7958a48e4992edd154489José Fonseca * Buffer usage flags
197fa1a66d7fc4fd7854de7958a48e4992edd154489José Fonseca */
198756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_CPU_READ  (1 << 0)
199756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_CPU_WRITE (1 << 1)
200756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_GPU_READ  (1 << 2)
201756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_GPU_WRITE (1 << 3)
202756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_PIXEL     (1 << 4)
203756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_VERTEX    (1 << 5)
204756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_INDEX     (1 << 6)
205756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_CONSTANT  (1 << 7)
206bd5b99d3890f162ec0928a589b6afbc8e67580b7Brian Paul/** Pipe driver custom usage flags should be greater or equal to this value */
207756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer#define PIPE_BUFFER_USAGE_CUSTOM    (1 << 16)
208756d52ec12c41ee90ee9598dc9028cc134806bd2Michel Dänzer
209d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca/* Convenient shortcuts */
210d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca#define PIPE_BUFFER_USAGE_CPU_READ_WRITE \
211d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca   ( PIPE_BUFFER_USAGE_CPU_READ | PIPE_BUFFER_USAGE_CPU_WRITE )
212d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca#define PIPE_BUFFER_USAGE_GPU_READ_WRITE \
213d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca   ( PIPE_BUFFER_USAGE_GPU_READ | PIPE_BUFFER_USAGE_GPU_WRITE )
214d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca#define PIPE_BUFFER_USAGE_WRITE \
215d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca   ( PIPE_BUFFER_USAGE_CPU_WRITE | PIPE_BUFFER_USAGE_GPU_WRITE )
216d600c805c08288757185ce3af24b5f0a866bb0b2José Fonseca
21793d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell
21893d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell/**
21993d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell * Flush types:
22093d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell */
221ae44a81d1bd40852a7cea9b8025dfa3821adc785Brian#define PIPE_FLUSH_RENDER_CACHE   0x1
22293d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell#define PIPE_FLUSH_TEXTURE_CACHE  0x2
2234abe1eb980ed76d2b2d3383eaab520d0aa2ae6f4Michel Dänzer#define PIPE_FLUSH_SWAPBUFFERS    0x4
224daa481a9c0825018d2320dcd8d9e2d7ddcfd46a0José Fonseca#define PIPE_FLUSH_FRAME          0x8 /**< Mark the end of a frame */
22593d5cfd8b7c641c5656aed38ad2f9559e09502f0Keith Whitwell
22640a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
22794a4910c9a1ef48470f45c01c379254cb033119fBrian/**
228c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian * Shaders
229c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian */
230c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_VERTEX   0
231c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_FRAGMENT 1
232c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian#define PIPE_SHADER_TYPES    2
233c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian
234c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian
235c0bb4ba9e665e40a325d82aa2ee48d7b8abd603bBrian/**
23694a4910c9a1ef48470f45c01c379254cb033119fBrian * Primitive types:
23794a4910c9a1ef48470f45c01c379254cb033119fBrian */
23894a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_POINTS          0
23994a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINES           1
24094a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINE_LOOP       2
24194a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_LINE_STRIP      3
24294a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLES       4
24394a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLE_STRIP  5
24494a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_TRIANGLE_FAN    6
24594a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_QUADS           7
24694a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_QUAD_STRIP      8
24794a4910c9a1ef48470f45c01c379254cb033119fBrian#define PIPE_PRIM_POLYGON         9
24894a4910c9a1ef48470f45c01c379254cb033119fBrian
24940a86b20478024ca7c55400019c536cb5ff631d1Keith Whitwell
25009fbb3837b6aa5dfc6c94f41ab5443820177c569Brian/**
25109fbb3837b6aa5dfc6c94f41ab5443820177c569Brian * Query object types
25209fbb3837b6aa5dfc6c94f41ab5443820177c569Brian */
25309fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_OCCLUSION_COUNTER     0
25409fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_PRIMITIVES_GENERATED  1
25509fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_PRIMITIVES_EMITTED    2
25609fbb3837b6aa5dfc6c94f41ab5443820177c569Brian#define PIPE_QUERY_TYPES                 3
25709fbb3837b6aa5dfc6c94f41ab5443820177c569Brian
25837cf13ed9a429c755f121daa1776b1b30a985ab3Brian
2591b4852345954af9b582b03a91a3d8399b8fb0e92Brian/**
2601b4852345954af9b582b03a91a3d8399b8fb0e92Brian * Point sprite coord modes
2611b4852345954af9b582b03a91a3d8399b8fb0e92Brian */
2621b4852345954af9b582b03a91a3d8399b8fb0e92Brian#define PIPE_SPRITE_COORD_NONE       0
2631b4852345954af9b582b03a91a3d8399b8fb0e92Brian#define PIPE_SPRITE_COORD_UPPER_LEFT 1
2641b4852345954af9b582b03a91a3d8399b8fb0e92Brian#define PIPE_SPRITE_COORD_LOWER_LEFT 2
2651b4852345954af9b582b03a91a3d8399b8fb0e92Brian
266c6499a741c99394e81d1d86ffd066f3d9749875cBrian
267c6499a741c99394e81d1d86ffd066f3d9749875cBrian/**
268c6499a741c99394e81d1d86ffd066f3d9749875cBrian * Implementation capabilities/limits
269c6499a741c99394e81d1d86ffd066f3d9749875cBrian * Passed to pipe->get_param()
270c6499a741c99394e81d1d86ffd066f3d9749875cBrian * XXX this will need some fine tuning...
271c6499a741c99394e81d1d86ffd066f3d9749875cBrian */
272c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS 1
273c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_NPOT_TEXTURES           2
274c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_TWO_SIDED_STENCIL       3
275c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_GLSL                    4  /* XXX need something better */
276c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_S3TC                    5
277c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_ANISOTROPIC_FILTER      6
278c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_POINT_SPRITE            7
279c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_MAX_RENDER_TARGETS      8
280c6499a741c99394e81d1d86ffd066f3d9749875cBrian#define PIPE_CAP_OCCLUSION_QUERY         9
281e2feb80a90f3e9300c70a4a4eb3e966131f5c313Brian#define PIPE_CAP_TEXTURE_SHADOW_MAP      10
282e2feb80a90f3e9300c70a4a4eb3e966131f5c313Brian#define PIPE_CAP_MAX_TEXTURE_2D_LEVELS   11
283e2feb80a90f3e9300c70a4a4eb3e966131f5c313Brian#define PIPE_CAP_MAX_TEXTURE_3D_LEVELS   12
284e2feb80a90f3e9300c70a4a4eb3e966131f5c313Brian#define PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS 13
28544254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_LINE_WIDTH          14
28644254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_LINE_WIDTH_AA       15
28744254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_POINT_WIDTH         16
28844254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_POINT_WIDTH_AA      17
28944254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_TEXTURE_ANISOTROPY  18
29044254b92480115e5c8a2d5cf78f99195c03701ebBrian#define PIPE_CAP_MAX_TEXTURE_LOD_BIAS    19
29143b92a6424a4d4f4f29b47c35092264c60822f1bMichal Krol#define PIPE_CAP_GUARD_BAND_LEFT         20  /*< float */
29243b92a6424a4d4f4f29b47c35092264c60822f1bMichal Krol#define PIPE_CAP_GUARD_BAND_TOP          21  /*< float */
29343b92a6424a4d4f4f29b47c35092264c60822f1bMichal Krol#define PIPE_CAP_GUARD_BAND_RIGHT        22  /*< float */
29443b92a6424a4d4f4f29b47c35092264c60822f1bMichal Krol#define PIPE_CAP_GUARD_BAND_BOTTOM       23  /*< float */
295be66a8f43172327e3cdde27281e40377cacbb121Brian Paul#define PIPE_CAP_TEXTURE_MIRROR_CLAMP    24
296be66a8f43172327e3cdde27281e40377cacbb121Brian Paul#define PIPE_CAP_TEXTURE_MIRROR_REPEAT   25
297be66a8f43172327e3cdde27281e40377cacbb121Brian Paul
29807aaf3a7a730d65052ec34a82cce9b373673b556Brian Paul
299c6499a741c99394e81d1d86ffd066f3d9749875cBrian
300e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca#ifdef __cplusplus
301e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca}
302e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca#endif
303e4e30089231831339815cccebf3a3a0ea6dcd2a9José Fonseca
3047234550cf759fdf3ab325465090c7f5eb3b5d320Brian#endif
305