vbo_attrib_tmp.h revision 4a95185c9f30c2de7a03bb1a0653f51b53b1111d
1fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell/************************************************************************** 2fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 3fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellCopyright 2002 Tungsten Graphics Inc., Cedar Park, Texas. 4fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 5fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellAll Rights Reserved. 6fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 7fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellPermission is hereby granted, free of charge, to any person obtaining a 8fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellcopy of this software and associated documentation files (the "Software"), 9fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellto deal in the Software without restriction, including without limitation 10fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellon the rights to use, copy, modify, merge, publish, distribute, sub 11fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwelllicense, and/or sell copies of the Software, and to permit persons to whom 12fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellthe Software is furnished to do so, subject to the following conditions: 13fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 14fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellThe above copyright notice and this permission notice (including the next 15fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellparagraph) shall be included in all copies or substantial portions of the 16fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellSoftware. 17fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 18fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellFITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 21fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellTUNGSTEN GRAPHICS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 22fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellDAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 23fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 24fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith WhitwellUSE OR OTHER DEALINGS IN THE SOFTWARE. 25fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 26fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell**************************************************************************/ 27fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 28fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR1FV( A, V ) ATTR( A, 1, (V)[0], 0, 0, 1 ) 29fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR2FV( A, V ) ATTR( A, 2, (V)[0], (V)[1], 0, 1 ) 30fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR3FV( A, V ) ATTR( A, 3, (V)[0], (V)[1], (V)[2], 1 ) 31fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR4FV( A, V ) ATTR( A, 4, (V)[0], (V)[1], (V)[2], (V)[3] ) 32fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 33fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR1F( A, X ) ATTR( A, 1, X, 0, 0, 1 ) 34fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR2F( A, X, Y ) ATTR( A, 2, X, Y, 0, 1 ) 35fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR3F( A, X, Y, Z ) ATTR( A, 3, X, Y, Z, 1 ) 36fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define ATTR4F( A, X, Y, Z, W ) ATTR( A, 4, X, Y, Z, W ) 37fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 38fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define MAT_ATTR( A, N, V ) ATTR( A, N, (V)[0], (V)[1], (V)[2], (V)[3] ) 39fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 40fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex2f)( GLfloat x, GLfloat y ) 41fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 42fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 43fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F( VBO_ATTRIB_POS, x, y ); 44fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 45fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 46fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex2fv)( const GLfloat *v ) 47fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 48fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 49fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV( VBO_ATTRIB_POS, v ); 50fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 51fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 52fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex3f)( GLfloat x, GLfloat y, GLfloat z ) 53fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 54fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 55fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( VBO_ATTRIB_POS, x, y, z ); 56fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 57fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 58fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex3fv)( const GLfloat *v ) 59fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 60fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 61fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( VBO_ATTRIB_POS, v ); 62fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 63fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 64fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex4f)( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) 65fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 66fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 67fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F( VBO_ATTRIB_POS, x, y, z, w ); 68fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 69fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 70fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Vertex4fv)( const GLfloat *v ) 71fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 72fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 73fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV( VBO_ATTRIB_POS, v ); 74fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 75fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 76fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord1f)( GLfloat x ) 77fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 78fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 79fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F( VBO_ATTRIB_TEX0, x ); 80fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 81fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 82fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord1fv)( const GLfloat *v ) 83fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 84fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 85fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV( VBO_ATTRIB_TEX0, v ); 86fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 87fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 88fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord2f)( GLfloat x, GLfloat y ) 89fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 90fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 91fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F( VBO_ATTRIB_TEX0, x, y ); 92fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 93fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 94fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord2fv)( const GLfloat *v ) 95fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 96fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 97fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV( VBO_ATTRIB_TEX0, v ); 98fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 99fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 100fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord3f)( GLfloat x, GLfloat y, GLfloat z ) 101fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 102fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 103fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( VBO_ATTRIB_TEX0, x, y, z ); 104fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 105fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 106fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord3fv)( const GLfloat *v ) 107fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 108fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 109fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( VBO_ATTRIB_TEX0, v ); 110fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 111fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 112fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord4f)( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) 113fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 114fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 115fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F( VBO_ATTRIB_TEX0, x, y, z, w ); 116fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 117fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 118fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(TexCoord4fv)( const GLfloat *v ) 119fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 120fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 121fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV( VBO_ATTRIB_TEX0, v ); 122fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 123fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 124fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Normal3f)( GLfloat x, GLfloat y, GLfloat z ) 125fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 126fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 127fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( VBO_ATTRIB_NORMAL, x, y, z ); 128fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 129fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 130fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Normal3fv)( const GLfloat *v ) 131fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 132fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 133fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( VBO_ATTRIB_NORMAL, v ); 134fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 135fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 136fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(FogCoordfEXT)( GLfloat x ) 137fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 138fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 139fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F( VBO_ATTRIB_FOG, x ); 140fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 141fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 142fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(FogCoordfvEXT)( const GLfloat *v ) 143fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 144fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 145fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV( VBO_ATTRIB_FOG, v ); 146fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 147fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 148fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Color3f)( GLfloat x, GLfloat y, GLfloat z ) 149fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 150fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 151fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( VBO_ATTRIB_COLOR0, x, y, z ); 152fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 153fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 154fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Color3fv)( const GLfloat *v ) 155fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 156fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 157fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( VBO_ATTRIB_COLOR0, v ); 158fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 159fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 160fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Color4f)( GLfloat x, GLfloat y, GLfloat z, GLfloat w ) 161fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 162fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 163fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F( VBO_ATTRIB_COLOR0, x, y, z, w ); 164fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 165fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 166fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Color4fv)( const GLfloat *v ) 167fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 168fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 169fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV( VBO_ATTRIB_COLOR0, v ); 170fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 171fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 172fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(SecondaryColor3fEXT)( GLfloat x, GLfloat y, GLfloat z ) 173fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 174fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 175fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( VBO_ATTRIB_COLOR1, x, y, z ); 176fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 177fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 178fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(SecondaryColor3fvEXT)( const GLfloat *v ) 179fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 180fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 181fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( VBO_ATTRIB_COLOR1, v ); 182fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 183fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 184fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 185fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(EdgeFlag)( GLboolean b ) 186fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 187fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 188fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F( VBO_ATTRIB_EDGEFLAG, (GLfloat)b ); 189fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 190fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 191fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Indexf)( GLfloat f ) 192fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 193fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 194fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F( VBO_ATTRIB_INDEX, f ); 195fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 196fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 197fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Indexfv)( const GLfloat *f ) 198fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 199fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 200fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV( VBO_ATTRIB_INDEX, f ); 201fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 202fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 203fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 204fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord1f)( GLenum target, GLfloat x ) 205fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 206fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 207fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 208fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F( attr, x ); 209fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 210fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 211fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord1fv)( GLenum target, const GLfloat *v ) 212fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 213fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 214fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 215fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV( attr, v ); 216fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 217fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 218fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord2f)( GLenum target, GLfloat x, GLfloat y ) 219fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 220fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 221fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 222fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F( attr, x, y ); 223fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 224fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 225fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord2fv)( GLenum target, const GLfloat *v ) 226fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 227fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 228fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 229fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV( attr, v ); 230fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 231fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 232fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord3f)( GLenum target, GLfloat x, GLfloat y, 233fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat z) 234fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 235fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 236fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 237fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F( attr, x, y, z ); 238fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 239fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 240fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord3fv)( GLenum target, const GLfloat *v ) 241fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 242fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 243fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 244fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV( attr, v ); 245fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 246fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 247fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord4f)( GLenum target, GLfloat x, GLfloat y, 248fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat z, GLfloat w ) 249fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 250fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 251fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 252fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F( attr, x, y, z, w ); 253fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 254fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 255fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(MultiTexCoord4fv)( GLenum target, const GLfloat *v ) 256fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 257fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 258fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLuint attr = (target & 0x7) + VBO_ATTRIB_TEX0; 259fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV( attr, v ); 260fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 261fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 262fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 263fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib1fARB)( GLuint index, GLfloat x ) 264fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 265fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 266fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 267fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F(0, x); 2684a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 269fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F(VBO_ATTRIB_GENERIC0 + index, x); 270fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 271fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 272fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 273fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 274fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib1fvARB)( GLuint index, 275fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 276fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 277fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 278fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 279fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV(0, v); 2804a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 281fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV(VBO_ATTRIB_GENERIC0 + index, v); 282fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 283fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 284fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 285fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 286fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib2fARB)( GLuint index, GLfloat x, 287fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y ) 288fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 289fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 290fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 291fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F(0, x, y); 2924a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 293fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F(VBO_ATTRIB_GENERIC0 + index, x, y); 294fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 295fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 296fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 297fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 298fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib2fvARB)( GLuint index, 299fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 300fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 301fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 302fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 303fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV(0, v); 3044a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 305fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV(VBO_ATTRIB_GENERIC0 + index, v); 306fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 307fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 308fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 309fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 310fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib3fARB)( GLuint index, GLfloat x, 311fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y, GLfloat z ) 312fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 313fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 314fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 315fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F(0, x, y, z); 3164a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 317fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F(VBO_ATTRIB_GENERIC0 + index, x, y, z); 318fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 319fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 320fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 321fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 322fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib3fvARB)( GLuint index, 323fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 324fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 325fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 326fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 327fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV(0, v); 3284a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 329fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV(VBO_ATTRIB_GENERIC0 + index, v); 330fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 331fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 332fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 333fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 334fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib4fARB)( GLuint index, GLfloat x, 335fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y, GLfloat z, 336fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat w ) 337fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 338fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 339fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 340fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F(0, x, y, z, w); 3414a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 342fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F(VBO_ATTRIB_GENERIC0 + index, x, y, z, w); 343fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 344fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 345fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 346fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 347fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib4fvARB)( GLuint index, 348fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 349fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 350fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 351fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index == 0) 352fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV(0, v); 3534a95185c9f30c2de7a03bb1a0653f51b53b1111dBrian Paul else if (index < MAX_VERTEX_GENERIC_ATTRIBS) 354fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV(VBO_ATTRIB_GENERIC0 + index, v); 355fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell else 356fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 357fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 358fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 359fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 3602421b25dd777ebfd614ae45907fd4af8c2713102Keith Whitwell/* In addition to supporting NV_vertex_program, these entrypoints are 361fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell * used by the display list and other code specifically because of 3622421b25dd777ebfd614ae45907fd4af8c2713102Keith Whitwell * their property of aliasing with other attributes. (See 3632421b25dd777ebfd614ae45907fd4af8c2713102Keith Whitwell * vbo_save_loopback.c) 364fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell */ 365fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib1fNV)( GLuint index, GLfloat x ) 366fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 367fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 368fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 369fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1F(index, x); 370fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 371fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 372fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib1fvNV)( GLuint index, 373fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 374fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 375fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 376fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 377fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR1FV(index, v); 378fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 379fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 380fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib2fNV)( GLuint index, GLfloat x, 381fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y ) 382fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 383fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 384fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 385fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2F(index, x, y); 386fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 387fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 388fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib2fvNV)( GLuint index, 389fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 390fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 391fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 392fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 393fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR2FV(index, v); 394fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 395fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 396fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib3fNV)( GLuint index, GLfloat x, 397fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y, GLfloat z ) 398fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 399fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 400fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 401fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3F(index, x, y, z); 402fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 403fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 404fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib3fvNV)( GLuint index, 405fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 406fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 407fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 408fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 409fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR3FV(index, v); 410fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 411fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 412fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib4fNV)( GLuint index, GLfloat x, 413fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat y, GLfloat z, 414fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GLfloat w ) 415fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 416fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 417fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 418fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4F(index, x, y, z, w); 419fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 420fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 421fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(VertexAttrib4fvNV)( GLuint index, 422fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *v ) 423fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 424fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 425fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (index < VBO_ATTRIB_MAX) 426fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ATTR4FV(index, v); 427fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 428fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 429fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 430fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#define MAT( ATTR, N, face, params ) \ 431fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwelldo { \ 432fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (face != GL_BACK) \ 433fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT_ATTR( ATTR, N, params ); /* front */ \ 434fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell if (face != GL_FRONT) \ 435fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT_ATTR( ATTR + 1, N, params ); /* back */ \ 436fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} while (0) 437fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 438fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 439fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell/* Colormaterial conflicts are dealt with later. 440fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell */ 441fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwellstatic void GLAPIENTRY TAG(Materialfv)( GLenum face, GLenum pname, 442fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell const GLfloat *params ) 443fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell{ 444fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell GET_CURRENT_CONTEXT( ctx ); 445fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell switch (pname) { 446fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_EMISSION: 447fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_EMISSION, 4, face, params ); 448fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 449fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_AMBIENT: 450fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_AMBIENT, 4, face, params ); 451fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 452fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_DIFFUSE: 453fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_DIFFUSE, 4, face, params ); 454fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 455fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_SPECULAR: 456fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_SPECULAR, 4, face, params ); 457fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 458fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_SHININESS: 459fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_SHININESS, 1, face, params ); 460fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 461fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_COLOR_INDEXES: 462fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_INDEXES, 3, face, params ); 463fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 464fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell case GL_AMBIENT_AND_DIFFUSE: 465fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_AMBIENT, 4, face, params ); 466fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell MAT( VBO_ATTRIB_MAT_FRONT_DIFFUSE, 4, face, params ); 467fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell break; 468fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell default: 469fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell ERROR(); 470fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell return; 471fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell } 472fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell} 473fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 474fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 475fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR1FV 476fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR2FV 477fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR3FV 478fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR4FV 479fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 480fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR1F 481fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR2F 482fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR3F 483fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef ATTR4F 484fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell 485fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef MAT 486fd12b37dbada6f945a94b93ecf332d0b6a8eef06Keith Whitwell#undef MAT_ATTR 487