0,0 → 1,108 |
/* |
Copyright (C) Intel Corp. 2006. All Rights Reserved. |
Intel funded Tungsten Graphics to |
develop this 3D driver. |
|
Permission is hereby granted, free of charge, to any person obtaining |
a copy of this software and associated documentation files (the |
"Software"), to deal in the Software without restriction, including |
without limitation the rights to use, copy, modify, merge, publish, |
distribute, sublicense, and/or sell copies of the Software, and to |
permit persons to whom the Software is furnished to do so, subject to |
the following conditions: |
|
The above copyright notice and this permission notice (including the |
next paragraph) shall be included in all copies or substantial |
portions of the Software. |
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE |
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
|
**********************************************************************/ |
/* |
* Authors: |
* Keith Whitwell <keithw@vmware.com> |
*/ |
|
#ifndef VBO_ATTRIB_H |
#define VBO_ATTRIB_H |
|
|
/* |
* Note: The first attributes match the VERT_ATTRIB_* definitions |
* in mtypes.h. However, the tnl module has additional attributes |
* for materials, color indexes, edge flags, etc. |
*/ |
/* Although it's nice to use these as bit indexes in a DWORD flag, we |
* could manage without if necessary. Another limit currently is the |
* number of bits allocated for these numbers in places like vertex |
* program instruction formats and register layouts. |
*/ |
enum { |
VBO_ATTRIB_POS = 0, |
VBO_ATTRIB_WEIGHT = 1, |
VBO_ATTRIB_NORMAL = 2, |
VBO_ATTRIB_COLOR0 = 3, |
VBO_ATTRIB_COLOR1 = 4, |
VBO_ATTRIB_FOG = 5, |
VBO_ATTRIB_INDEX = 6, |
VBO_ATTRIB_EDGEFLAG = 7, |
VBO_ATTRIB_TEX0 = 8, |
VBO_ATTRIB_TEX1 = 9, |
VBO_ATTRIB_TEX2 = 10, |
VBO_ATTRIB_TEX3 = 11, |
VBO_ATTRIB_TEX4 = 12, |
VBO_ATTRIB_TEX5 = 13, |
VBO_ATTRIB_TEX6 = 14, |
VBO_ATTRIB_TEX7 = 15, |
VBO_ATTRIB_POINT_SIZE = 16, |
|
VBO_ATTRIB_GENERIC0 = 17, /* Not used? */ |
VBO_ATTRIB_GENERIC1 = 18, |
VBO_ATTRIB_GENERIC2 = 19, |
VBO_ATTRIB_GENERIC3 = 20, |
VBO_ATTRIB_GENERIC4 = 21, |
VBO_ATTRIB_GENERIC5 = 22, |
VBO_ATTRIB_GENERIC6 = 23, |
VBO_ATTRIB_GENERIC7 = 24, |
VBO_ATTRIB_GENERIC8 = 25, |
VBO_ATTRIB_GENERIC9 = 26, |
VBO_ATTRIB_GENERIC10 = 27, |
VBO_ATTRIB_GENERIC11 = 28, |
VBO_ATTRIB_GENERIC12 = 29, |
VBO_ATTRIB_GENERIC13 = 30, |
VBO_ATTRIB_GENERIC14 = 31, |
VBO_ATTRIB_GENERIC15 = 32, |
|
/* XXX: in the vertex program InputsRead flag, we alias |
* materials and generics and use knowledge about the program |
* (whether it is a fixed-function emulation) to |
* differentiate. Here we must keep them apart instead. |
*/ |
VBO_ATTRIB_MAT_FRONT_AMBIENT = 33, |
VBO_ATTRIB_MAT_BACK_AMBIENT = 34, |
VBO_ATTRIB_MAT_FRONT_DIFFUSE = 35, |
VBO_ATTRIB_MAT_BACK_DIFFUSE = 36, |
VBO_ATTRIB_MAT_FRONT_SPECULAR = 37, |
VBO_ATTRIB_MAT_BACK_SPECULAR = 38, |
VBO_ATTRIB_MAT_FRONT_EMISSION = 39, |
VBO_ATTRIB_MAT_BACK_EMISSION = 40, |
VBO_ATTRIB_MAT_FRONT_SHININESS = 41, |
VBO_ATTRIB_MAT_BACK_SHININESS = 42, |
VBO_ATTRIB_MAT_FRONT_INDEXES = 43, |
VBO_ATTRIB_MAT_BACK_INDEXES = 44, |
|
VBO_ATTRIB_MAX = 45 |
}; |
|
#define VBO_ATTRIB_FIRST_MATERIAL VBO_ATTRIB_MAT_FRONT_AMBIENT |
#define VBO_ATTRIB_LAST_MATERIAL VBO_ATTRIB_MAT_BACK_INDEXES |
|
#define VBO_MAX_COPIED_VERTS 3 |
|
#endif |