xref: /aosp_15_r20/external/mesa3d/src/mesa/vbo/vbo_attrib.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  Copyright (C) Intel Corp.  2006.  All Rights Reserved.
3*61046927SAndroid Build Coastguard Worker  Intel funded Tungsten Graphics to
4*61046927SAndroid Build Coastguard Worker  develop this 3D driver.
5*61046927SAndroid Build Coastguard Worker 
6*61046927SAndroid Build Coastguard Worker  Permission is hereby granted, free of charge, to any person obtaining
7*61046927SAndroid Build Coastguard Worker  a copy of this software and associated documentation files (the
8*61046927SAndroid Build Coastguard Worker  "Software"), to deal in the Software without restriction, including
9*61046927SAndroid Build Coastguard Worker  without limitation the rights to use, copy, modify, merge, publish,
10*61046927SAndroid Build Coastguard Worker  distribute, sublicense, and/or sell copies of the Software, and to
11*61046927SAndroid Build Coastguard Worker  permit persons to whom the Software is furnished to do so, subject to
12*61046927SAndroid Build Coastguard Worker  the following conditions:
13*61046927SAndroid Build Coastguard Worker 
14*61046927SAndroid Build Coastguard Worker  The above copyright notice and this permission notice (including the
15*61046927SAndroid Build Coastguard Worker  next paragraph) shall be included in all copies or substantial
16*61046927SAndroid Build Coastguard Worker  portions of the Software.
17*61046927SAndroid Build Coastguard Worker 
18*61046927SAndroid Build Coastguard Worker  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19*61046927SAndroid Build Coastguard Worker  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20*61046927SAndroid Build Coastguard Worker  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21*61046927SAndroid Build Coastguard Worker  IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
22*61046927SAndroid Build Coastguard Worker  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23*61046927SAndroid Build Coastguard Worker  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24*61046927SAndroid Build Coastguard Worker  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25*61046927SAndroid Build Coastguard Worker 
26*61046927SAndroid Build Coastguard Worker  **********************************************************************/
27*61046927SAndroid Build Coastguard Worker  /*
28*61046927SAndroid Build Coastguard Worker   * Authors:
29*61046927SAndroid Build Coastguard Worker   *   Keith Whitwell <[email protected]>
30*61046927SAndroid Build Coastguard Worker   */
31*61046927SAndroid Build Coastguard Worker 
32*61046927SAndroid Build Coastguard Worker #ifndef VBO_ATTRIB_H
33*61046927SAndroid Build Coastguard Worker #define VBO_ATTRIB_H
34*61046927SAndroid Build Coastguard Worker 
35*61046927SAndroid Build Coastguard Worker /*
36*61046927SAndroid Build Coastguard Worker  * Note: The first 32 attributes match the VERT_ATTRIB_* definitions.
37*61046927SAndroid Build Coastguard Worker  * However, we have extra attributes for storing per-vertex glMaterial
38*61046927SAndroid Build Coastguard Worker  * values.  The material attributes get shifted into the generic positions
39*61046927SAndroid Build Coastguard Worker  * at draw time.
40*61046927SAndroid Build Coastguard Worker  *
41*61046927SAndroid Build Coastguard Worker  * One reason we can't alias materials and generics here is display lists.
42*61046927SAndroid Build Coastguard Worker  * A display list might contain both generic attributes and material
43*61046927SAndroid Build Coastguard Worker  * attributes which are selected at draw time depending on whether we're
44*61046927SAndroid Build Coastguard Worker  * using fixed function or a shader.  <sigh>
45*61046927SAndroid Build Coastguard Worker  */
46*61046927SAndroid Build Coastguard Worker enum vbo_attrib {
47*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_POS,
48*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_NORMAL,
49*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_COLOR0,
50*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_COLOR1,
51*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_FOG,
52*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_COLOR_INDEX,
53*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX0,
54*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX1,
55*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX2,
56*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX3,
57*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX4,
58*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX5,
59*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX6,
60*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_TEX7,
61*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_POINT_SIZE,
62*61046927SAndroid Build Coastguard Worker 
63*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC0, /* Not used? */
64*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC1,
65*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC2,
66*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC3,
67*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC4,
68*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC5,
69*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC6,
70*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC7,
71*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC8,
72*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC9,
73*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC10,
74*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC11,
75*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC12,
76*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC13,
77*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC14,
78*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_GENERIC15,
79*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_EDGEFLAG,
80*61046927SAndroid Build Coastguard Worker 
81*61046927SAndroid Build Coastguard Worker    /* XXX: in the vertex program inputs_read flag, we alias
82*61046927SAndroid Build Coastguard Worker     * materials and generics and use knowledge about the program
83*61046927SAndroid Build Coastguard Worker     * (whether it is a fixed-function emulation) to
84*61046927SAndroid Build Coastguard Worker     * differentiate.  Here we must keep them apart instead.
85*61046927SAndroid Build Coastguard Worker     */
86*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_AMBIENT,
87*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_AMBIENT,
88*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_DIFFUSE,
89*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_DIFFUSE,
90*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_SPECULAR,
91*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_SPECULAR,
92*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_EMISSION,
93*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_EMISSION,
94*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_SHININESS,
95*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_SHININESS,
96*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_FRONT_INDEXES,
97*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAT_BACK_INDEXES,
98*61046927SAndroid Build Coastguard Worker 
99*61046927SAndroid Build Coastguard Worker    /* Offset into HW GL_SELECT result buffer. */
100*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_SELECT_RESULT_OFFSET,
101*61046927SAndroid Build Coastguard Worker 
102*61046927SAndroid Build Coastguard Worker    VBO_ATTRIB_MAX
103*61046927SAndroid Build Coastguard Worker };
104*61046927SAndroid Build Coastguard Worker 
105*61046927SAndroid Build Coastguard Worker #define VBO_ATTRIB_FIRST_MATERIAL VBO_ATTRIB_MAT_FRONT_AMBIENT
106*61046927SAndroid Build Coastguard Worker #define VBO_ATTRIB_LAST_MATERIAL VBO_ATTRIB_MAT_BACK_INDEXES
107*61046927SAndroid Build Coastguard Worker 
108*61046927SAndroid Build Coastguard Worker 
109*61046927SAndroid Build Coastguard Worker /** VBO_ATTRIB_POS .. VBO_ATTRIB_POINT_SIZE */
110*61046927SAndroid Build Coastguard Worker #define VBO_ATTRIBS_LEGACY  (BITFIELD64_MASK(VBO_ATTRIB_GENERIC0) | \
111*61046927SAndroid Build Coastguard Worker                              BITFIELD64_BIT(VBO_ATTRIB_EDGEFLAG))
112*61046927SAndroid Build Coastguard Worker 
113*61046927SAndroid Build Coastguard Worker /** VBO_ATTRIB_MAT_FRONT_AMBIENT .. VBO_ATTRIB_MAT_BACK_INDEXES */
114*61046927SAndroid Build Coastguard Worker #define VBO_ATTRIBS_MATERIALS BITFIELD64_RANGE(VBO_ATTRIB_MAT_FRONT_AMBIENT, \
115*61046927SAndroid Build Coastguard Worker                      VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_FIRST_MATERIAL + 1)
116*61046927SAndroid Build Coastguard Worker 
117*61046927SAndroid Build Coastguard Worker /**
118*61046927SAndroid Build Coastguard Worker  * Move material attribs to the last generic attribs, moving LAST_MATERIAL
119*61046927SAndroid Build Coastguard Worker  * to GENERIC15, etc.
120*61046927SAndroid Build Coastguard Worker  */
121*61046927SAndroid Build Coastguard Worker #define VBO_MATERIAL_SHIFT (VBO_ATTRIB_LAST_MATERIAL - VBO_ATTRIB_GENERIC15)
122*61046927SAndroid Build Coastguard Worker 
123*61046927SAndroid Build Coastguard Worker 
124*61046927SAndroid Build Coastguard Worker 
125*61046927SAndroid Build Coastguard Worker #define VBO_MAX_COPIED_VERTS 31
126*61046927SAndroid Build Coastguard Worker 
127*61046927SAndroid Build Coastguard Worker #endif
128