api_arrayelt.c revision a0c85249244e1af8dac88076d5f384cf4bd01236
122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes/* 222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * Mesa 3-D graphics library 3b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul * Version: 6.3 422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * 50d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. 622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * 722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * Permission is hereby granted, free of charge, to any person obtaining a 822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * copy of this software and associated documentation files (the "Software"), 922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * to deal in the Software without restriction, including without limitation 1022144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * the rights to use, copy, modify, merge, publish, distribute, sublicense, 1122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * and/or sell copies of the Software, and to permit persons to whom the 1222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * Software is furnished to do so, subject to the following conditions: 1322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * 1422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * The above copyright notice and this permission notice shall be included 1522144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * in all copies or substantial portions of the Software. 1622144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * 1722144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1822144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1922144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 2022144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2122144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2222144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2322144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes */ 2422144ab7552f0799bcfca506bf4ffa7f70a06649Gareth Hughes 25fc00cbe8d1ac48faf345e41a13757a8a1e2e5ebeKeith Whitwell/* Author: 2605a4b37707d2c598ea68c05d07a3d65bcbf5a076Brian Paul * Keith Whitwell <keith@tungstengraphics.com> 27fc00cbe8d1ac48faf345e41a13757a8a1e2e5ebeKeith Whitwell */ 28fc00cbe8d1ac48faf345e41a13757a8a1e2e5ebeKeith Whitwell 29cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#include "glheader.h" 304b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell#include "api_arrayelt.h" 31cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#include "context.h" 32fc00cbe8d1ac48faf345e41a13757a8a1e2e5ebeKeith Whitwell#include "glapi.h" 333c63452e64df7e10aa073c6c3b9492b1d7dabbb8Brian Paul#include "imports.h" 34cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#include "macros.h" 35cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell#include "mtypes.h" 36cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 37faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheideggertypedef void (GLAPIENTRY *array_func)( const void * ); 380aa8a1062a06616fad18a1901afb5fa67fdcf82aBrian Paul 39cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwelltypedef struct { 400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const struct gl_client_array *array; 41faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger array_func func; 42faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger} AEarray; 430aa8a1062a06616fad18a1901afb5fa67fdcf82aBrian Paul 440d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paultypedef void (GLAPIENTRY *attrib_func)( GLuint indx, const void *data ); 450d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 460d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paultypedef struct { 470d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const struct gl_client_array *array; 480d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul attrib_func func; 490d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul GLuint index; 500d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} AEattrib; 510d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 520aa8a1062a06616fad18a1901afb5fa67fdcf82aBrian Paultypedef struct { 5353ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul AEarray arrays[32]; 540d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul AEattrib attribs[VERT_ATTRIB_MAX + 1]; 55cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GLuint NewState; 564b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell} AEcontext; 574b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 584b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell#define AE_CONTEXT(ctx) ((AEcontext *)(ctx)->aelt_context) 590d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 600d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* 610d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * Convert GL_BYTE, GL_UNSIGNED_BYTE, .. GL_DOUBLE into an integer 620d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * in the range [0, 7]. Luckily these type tokens are sequentially 63f2f33507748260fe766742a0ed8b02c49d548bd8Brian Paul * numbered in gl.h, except for GL_DOUBLE. 640d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul */ 65f2f33507748260fe766742a0ed8b02c49d548bd8Brian Paul#define TYPE_IDX(t) ( (t) == GL_DOUBLE ? 7 : (t) & 7 ) 66cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 6794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3bv(const GLbyte *v) 6894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 6994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3bv)(v); 7094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 7194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 7294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3ubv(const GLubyte *v) 7394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 7494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3ubv)(v); 7594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 7694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 7794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3sv(const GLshort *v) 7894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 7994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3sv)(v); 8094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 8194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 8294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3usv(const GLushort *v) 8394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 8494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3usv)(v); 8594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 8694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 8794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3iv(const GLint *v) 8894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 8994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3iv)(v); 9094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 9194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 9294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3uiv(const GLuint *v) 9394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 9494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3uiv)(v); 9594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 9694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 9794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3fv(const GLfloat *v) 9894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 9994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3fv)(v); 10094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 10194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 10294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color3dv(const GLdouble *v) 10394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 10494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color3dv)(v); 10594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 10694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 10794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4bv(const GLbyte *v) 10894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 10994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4bv)(v); 11094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 11194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 11294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4ubv(const GLubyte *v) 11394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 11494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4ubv)(v); 11594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 11694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 11794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4sv(const GLshort *v) 11894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 11994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4sv)(v); 12094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 1210d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 12294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4usv(const GLushort *v) 12394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 12494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4usv)(v); 12594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 12694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 12794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4iv(const GLint *v) 12894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 12994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4iv)(v); 13094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 13194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 13294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4uiv(const GLuint *v) 13394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 13494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4uiv)(v); 13594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 13694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 13794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4fv(const GLfloat *v) 13894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 13994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4fv)(v); 14094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 14194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 14294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Color4dv(const GLdouble *v) 14394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 14494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Color4dv)(v); 14594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 14694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 14794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func ColorFuncs[2][8] = { 14894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson { 14994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3bv, 15094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3ubv, 15194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3sv, 15294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3usv, 15394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3iv, 15494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3uiv, 15594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3fv, 15694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color3dv, 15794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson }, 15894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson { 15994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4bv, 16094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4ubv, 16194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4sv, 16294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4usv, 16394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4iv, 16494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4uiv, 16594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4fv, 16694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Color4dv, 16794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson }, 16853ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul}; 16953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 17094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex2sv(const GLshort *v) 17194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 17294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex2sv)(v); 17394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 17494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 17594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex2iv(const GLint *v) 17694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 17794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex2iv)(v); 17894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 17994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 18094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex2fv(const GLfloat *v) 18194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 18294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex2fv)(v); 18394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 18494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 18594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex2dv(const GLdouble *v) 18694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 18794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex2dv)(v); 18894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 18994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 19094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex3sv(const GLshort *v) 19194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 19294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex3sv)(v); 19394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 19494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 19594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex3iv(const GLint *v) 19694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 19794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex3iv)(v); 19894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 19994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 20094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex3fv(const GLfloat *v) 20194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 20294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex3fv)(v); 20394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 20494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 20594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex3dv(const GLdouble *v) 20694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 20794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex3dv)(v); 20894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 20994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 21094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex4sv(const GLshort *v) 21194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 21294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex4sv)(v); 21394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 21494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 21594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex4iv(const GLint *v) 21694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 21794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex4iv)(v); 21894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 21994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 22094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex4fv(const GLfloat *v) 22194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 22294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex4fv)(v); 22394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 22494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 22594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Vertex4dv(const GLdouble *v) 22694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 22794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Vertex4dv)(v); 22894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 22994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 23094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func VertexFuncs[3][8] = { 23194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson { 232a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 233a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 23494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex2sv, 235a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 23694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex2iv, 237a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 23894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex2fv, 23994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex2dv, 24094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson }, 24194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson { 242a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 243a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 24494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex3sv, 245a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 24694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex3iv, 247a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 24894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex3fv, 24994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex3dv, 25094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson }, 25194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson { 252a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 253a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 25494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex4sv, 255a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 25694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex4iv, 257a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 25894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex4fv, 25994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Vertex4dv, 26094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson }, 26153ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul}; 26253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 26394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Indexubv(const GLubyte *c) 26494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 26594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Indexubv)(c); 26694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 26794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 26894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Indexsv(const GLshort *c) 26994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 27094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Indexsv)(c); 27194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 27294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 27394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Indexiv(const GLint *c) 27494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 27594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Indexiv)(c); 27694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 27794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 27894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Indexfv(const GLfloat *c) 27994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 28094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Indexfv)(c); 28194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 28294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 28394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Indexdv(const GLdouble *c) 28494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 28594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Indexdv)(c); 28694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 28794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 28894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func IndexFuncs[8] = { 289a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 29094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Indexubv, 29194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Indexsv, 292a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 29394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Indexiv, 294a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 29594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Indexfv, 29694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Indexdv, 297cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell}; 298cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 29994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Normal3bv(const GLbyte *v) 30094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 30194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Normal3bv)(v); 30294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 30394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 30494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Normal3sv(const GLshort *v) 30594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 30694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Normal3sv)(v); 30794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 30894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 30994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Normal3iv(const GLint *v) 31094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 31194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Normal3iv)(v); 31294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 31394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 31494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Normal3fv(const GLfloat *v) 31594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 31694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Normal3fv)(v); 31794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 31894987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 31994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY Normal3dv(const GLdouble *v) 32094987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 32194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(Normal3dv)(v); 32294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 32394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 32494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func NormalFuncs[8] = { 32594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Normal3bv, 326a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 32794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Normal3sv, 328a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 32994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Normal3iv, 330a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 33194987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Normal3fv, 33294987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson (array_func) Normal3dv, 33353ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul}; 33453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 33553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul/* Wrapper functions in case glSecondaryColor*EXT doesn't exist */ 3362615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3bvEXT(const GLbyte *c) 33753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 338c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3bvEXT)(c); 33953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 34053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3412615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3ubvEXT(const GLubyte *c) 34253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 343c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3ubvEXT)(c); 34453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 34553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3462615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3svEXT(const GLshort *c) 34753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 348c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3svEXT)(c); 34953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 35053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3512615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3usvEXT(const GLushort *c) 35253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 353c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3usvEXT)(c); 35453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 35553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3562615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3ivEXT(const GLint *c) 35753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 358c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3ivEXT)(c); 35953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 36053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3612615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3uivEXT(const GLuint *c) 36253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 363c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3uivEXT)(c); 36453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 36553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3662615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3fvEXT(const GLfloat *c) 36753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 368c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3fvEXT)(c); 36953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 37053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3712615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY SecondaryColor3dvEXT(const GLdouble *c) 37253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 373c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(SecondaryColor3dvEXT)(c); 37453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 37553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 37694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func SecondaryColorFuncs[8] = { 37753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3bvEXT, 37853ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3ubvEXT, 37953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3svEXT, 38053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3usvEXT, 38153ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3ivEXT, 38253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3uivEXT, 38353ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3fvEXT, 38453ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) SecondaryColor3dvEXT, 38553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul}; 38653ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 38753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 38853ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul/* Again, wrapper functions in case glSecondaryColor*EXT doesn't exist */ 3892615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY FogCoordfvEXT(const GLfloat *f) 39053ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 391c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(FogCoordfvEXT)(f); 39253ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 39353ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 3942615e81620bf91cc642b3373c41353b440242feeBrian Paulstatic void GLAPIENTRY FogCoorddvEXT(const GLdouble *f) 39553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul{ 396c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(FogCoorddvEXT)(f); 39753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul} 39853ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 39994987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic const array_func FogCoordFuncs[8] = { 400a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 401a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 402a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 403a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 404a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 405a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell NULL, 40653ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) FogCoordfvEXT, 40753ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul (array_func) FogCoorddvEXT 40853ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul}; 40953ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 4100d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/**********************************************************************/ 4110d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 4120d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_BYTE attributes */ 4130d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 414b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NbvNV(GLuint index, const GLbyte *v) 4150d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 416c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, BYTE_TO_FLOAT(v[0])); 4170d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4180d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 419b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1bvNV(GLuint index, const GLbyte *v) 4200d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 421c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 4220d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4230d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 424b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NbvNV(GLuint index, const GLbyte *v) 4250d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 426c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1])); 4270d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4280d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 429b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2bvNV(GLuint index, const GLbyte *v) 4300d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 431c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 4320d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4330d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 434b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NbvNV(GLuint index, const GLbyte *v) 4350d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 436c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, BYTE_TO_FLOAT(v[0]), 437c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick BYTE_TO_FLOAT(v[1]), 438c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick BYTE_TO_FLOAT(v[2])); 4390d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 441b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3bvNV(GLuint index, const GLbyte *v) 4420d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 443c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 4440d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4450d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 446b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NbvNV(GLuint index, const GLbyte *v) 4470d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 448c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, BYTE_TO_FLOAT(v[0]), 449c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick BYTE_TO_FLOAT(v[1]), 450c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick BYTE_TO_FLOAT(v[2]), 451c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick BYTE_TO_FLOAT(v[3])); 4520d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4530d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 454b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4bvNV(GLuint index, const GLbyte *v) 4550d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 456c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 4570d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4580d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 4590d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_UNSIGNED_BYTE attributes */ 4600d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 461b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NubvNV(GLuint index, const GLubyte *v) 4620d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 463c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, UBYTE_TO_FLOAT(v[0])); 4640d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4650d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 466b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1ubvNV(GLuint index, const GLubyte *v) 4670d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 468c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 4690d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4700d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 471b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NubvNV(GLuint index, const GLubyte *v) 4720d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 473c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, UBYTE_TO_FLOAT(v[0]), 474c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UBYTE_TO_FLOAT(v[1])); 4750d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4760d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 477b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2ubvNV(GLuint index, const GLubyte *v) 4780d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 479c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 4800d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4810d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 482b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NubvNV(GLuint index, const GLubyte *v) 4830d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 484c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, UBYTE_TO_FLOAT(v[0]), 485c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UBYTE_TO_FLOAT(v[1]), 486c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UBYTE_TO_FLOAT(v[2])); 4870d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 488b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3ubvNV(GLuint index, const GLubyte *v) 4890d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 490c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 4910d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 4920d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 493b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NubvNV(GLuint index, const GLubyte *v) 4940d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 495c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, UBYTE_TO_FLOAT(v[0]), 4960d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul UBYTE_TO_FLOAT(v[1]), 4970d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul UBYTE_TO_FLOAT(v[2]), 4980d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul UBYTE_TO_FLOAT(v[3])); 4990d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5000d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 501b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4ubvNV(GLuint index, const GLubyte *v) 5020d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 503c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 5040d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5050d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 5060d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_SHORT attributes */ 5070d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 508b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NsvNV(GLuint index, const GLshort *v) 5090d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 510c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, SHORT_TO_FLOAT(v[0])); 5110d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5120d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 513b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1svNV(GLuint index, const GLshort *v) 5140d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 515c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 5160d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5170d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 518b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NsvNV(GLuint index, const GLshort *v) 5190d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 520c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, SHORT_TO_FLOAT(v[0]), 521c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[1])); 5220d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5230d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 524b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2svNV(GLuint index, const GLshort *v) 5250d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 526c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 5270d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5280d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 529b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NsvNV(GLuint index, const GLshort *v) 5300d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 531c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, SHORT_TO_FLOAT(v[0]), 532c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[1]), 533c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[2])); 5340d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5350d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 536b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3svNV(GLuint index, const GLshort *v) 5370d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 538c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 5390d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 541b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NsvNV(GLuint index, const GLshort *v) 5420d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 543c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, SHORT_TO_FLOAT(v[0]), 544c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[1]), 545c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[2]), 546c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick SHORT_TO_FLOAT(v[3])); 5470d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5480d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 549b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4svNV(GLuint index, const GLshort *v) 5500d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 551c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 5520d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5530d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 5540d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_UNSIGNED_SHORT attributes */ 5550d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 556b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NusvNV(GLuint index, const GLushort *v) 5570d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 558c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, USHORT_TO_FLOAT(v[0])); 5590d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5600d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 561b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1usvNV(GLuint index, const GLushort *v) 5620d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 563c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 5640d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5650d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 566b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NusvNV(GLuint index, const GLushort *v) 5670d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 568c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, USHORT_TO_FLOAT(v[0]), 569c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[1])); 5700d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5710d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 572b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2usvNV(GLuint index, const GLushort *v) 5730d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 574c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 5750d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5760d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 577b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NusvNV(GLuint index, const GLushort *v) 5780d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 579c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, USHORT_TO_FLOAT(v[0]), 580c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[1]), 581c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[2])); 5820d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5830d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 584b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3usvNV(GLuint index, const GLushort *v) 5850d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 586c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 5870d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5880d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 589b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NusvNV(GLuint index, const GLushort *v) 5900d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 591c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, USHORT_TO_FLOAT(v[0]), 592c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[1]), 593c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[2]), 594c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick USHORT_TO_FLOAT(v[3])); 5950d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 5960d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 597b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4usvNV(GLuint index, const GLushort *v) 5980d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 599c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 6000d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6010d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 6020d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_INT attributes */ 6030d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 604b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NivNV(GLuint index, const GLint *v) 6050d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 606c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, INT_TO_FLOAT(v[0])); 6070d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6080d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 609b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1ivNV(GLuint index, const GLint *v) 6100d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 611c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 6120d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6130d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 614b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NivNV(GLuint index, const GLint *v) 6150d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 616c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, INT_TO_FLOAT(v[0]), 617c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[1])); 6180d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6190d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 620b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2ivNV(GLuint index, const GLint *v) 6210d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 622c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 6230d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6240d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 625b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NivNV(GLuint index, const GLint *v) 6260d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 627c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, INT_TO_FLOAT(v[0]), 628c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[1]), 629c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[2])); 6300d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6310d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 632b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3ivNV(GLuint index, const GLint *v) 6330d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 634c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 6350d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6360d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 637b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NivNV(GLuint index, const GLint *v) 6380d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 639c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, INT_TO_FLOAT(v[0]), 640c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[1]), 641c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[2]), 642c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick INT_TO_FLOAT(v[3])); 6430d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6440d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 645b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4ivNV(GLuint index, const GLint *v) 6460d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 647c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 6480d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6490d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 6500d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_UNSIGNED_INT attributes */ 6510d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 652b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1NuivNV(GLuint index, const GLuint *v) 6530d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 654c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, UINT_TO_FLOAT(v[0])); 6550d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6560d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 657b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1uivNV(GLuint index, const GLuint *v) 6580d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 659c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fNV)(index, v[0]); 6600d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6610d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 662b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2NuivNV(GLuint index, const GLuint *v) 6630d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 664c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, UINT_TO_FLOAT(v[0]), 665c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[1])); 6660d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6670d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 668b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2uivNV(GLuint index, const GLuint *v) 6690d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 670c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fNV)(index, v[0], v[1]); 6710d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6720d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 673b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3NuivNV(GLuint index, const GLuint *v) 6740d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 675c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, UINT_TO_FLOAT(v[0]), 676c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[1]), 677c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[2])); 6780d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6790d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 680b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3uivNV(GLuint index, const GLuint *v) 6810d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 682c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fNV)(index, v[0], v[1], v[2]); 6830d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6840d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 685b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4NuivNV(GLuint index, const GLuint *v) 6860d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 687c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, UINT_TO_FLOAT(v[0]), 688c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[1]), 689c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[2]), 690c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick UINT_TO_FLOAT(v[3])); 6910d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6920d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 693b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4uivNV(GLuint index, const GLuint *v) 6940d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 695c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fNV)(index, v[0], v[1], v[2], v[3]); 6960d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 6970d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 6980d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_FLOAT attributes */ 6990d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 700b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1fvNV(GLuint index, const GLfloat *v) 7010d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 702c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1fvNV)(index, v); 7030d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7040d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 705b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2fvNV(GLuint index, const GLfloat *v) 7060d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 707c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2fvNV)(index, v); 7080d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7090d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 710b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3fvNV(GLuint index, const GLfloat *v) 7110d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 712c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3fvNV)(index, v); 7130d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7140d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 715b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4fvNV(GLuint index, const GLfloat *v) 7160d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 717c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4fvNV)(index, v); 7180d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7190d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 7200d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* GL_DOUBLE attributes */ 7210d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 722b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib1dvNV(GLuint index, const GLdouble *v) 7230d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 724c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib1dvNV)(index, v); 7250d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7260d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 727b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib2dvNV(GLuint index, const GLdouble *v) 7280d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 729c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib2dvNV)(index, v); 7300d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7310d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 732b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib3dvNV(GLuint index, const GLdouble *v) 7330d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 734c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib3dvNV)(index, v); 7350d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7360d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 737b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic void GLAPIENTRY VertexAttrib4dvNV(GLuint index, const GLdouble *v) 7380d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul{ 739c1d455f5827e7044dcb316dadc755a6f91299906Ian Romanick GL_CALL(VertexAttrib4dvNV)(index, v); 7400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul} 7410d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 7420d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 7430d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/* 7440d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * Array [size][type] of VertexAttrib functions 7450d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul */ 746b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paulstatic attrib_func AttribFuncsNV[2][4][8] = { 7470d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7480d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* non-normalized */ 7490d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7500d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 1 */ 751b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1bvNV, 752b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1ubvNV, 753b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1svNV, 754b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1usvNV, 755b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1ivNV, 756b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1uivNV, 757b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1fvNV, 758b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1dvNV 7590d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 7600d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7610d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 2 */ 762b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2bvNV, 763b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2ubvNV, 764b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2svNV, 765b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2usvNV, 766b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2ivNV, 767b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2uivNV, 768b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2fvNV, 769b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2dvNV 7700d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 7710d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7720d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 3 */ 773b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3bvNV, 774b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3ubvNV, 775b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3svNV, 776b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3usvNV, 777b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3ivNV, 778b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3uivNV, 779b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3fvNV, 780b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3dvNV 7810d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 7820d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7830d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 4 */ 784b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4bvNV, 785b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4ubvNV, 786b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4svNV, 787b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4usvNV, 788b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4ivNV, 789b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4uivNV, 790b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4fvNV, 791b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4dvNV 7920d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul } 7930d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 7940d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7950d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* normalized (except for float/double) */ 7960d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 7970d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 1 */ 798b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NbvNV, 799b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NubvNV, 800b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NsvNV, 801b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NusvNV, 802b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NivNV, 803b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1NuivNV, 804b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1fvNV, 805b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib1dvNV 8060d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 8070d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 8080d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 2 */ 809b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NbvNV, 810b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NubvNV, 811b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NsvNV, 812b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NusvNV, 813b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NivNV, 814b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2NuivNV, 815b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2fvNV, 816b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib2dvNV 8170d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 8180d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 8190d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 3 */ 820b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NbvNV, 821b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NubvNV, 822b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NsvNV, 823b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NusvNV, 824b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NivNV, 825b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3NuivNV, 826b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3fvNV, 827b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib3dvNV 8280d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul }, 8290d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul { 8300d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* size 4 */ 831b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NbvNV, 832b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NubvNV, 833b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NsvNV, 834b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NusvNV, 835b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NivNV, 836b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4NuivNV, 837b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4fvNV, 838b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul (attrib_func) VertexAttrib4dvNV 8390d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul } 8400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul } 8410d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul}; 8420d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 84394987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jacksonstatic void GLAPIENTRY EdgeFlagv(const GLboolean *flag) 84494987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson{ 84594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson GL_CALL(EdgeFlagv)(flag); 84694987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson} 84794987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson 8480d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/**********************************************************************/ 8490d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul 85003c0c2e8aa5e5f1b430c4b3faa1f9ad92b1b71ebBrian Paul 85103c0c2e8aa5e5f1b430c4b3faa1f9ad92b1b71ebBrian PaulGLboolean _ae_create_context( GLcontext *ctx ) 85203c0c2e8aa5e5f1b430c4b3faa1f9ad92b1b71ebBrian Paul{ 853ae0eaf93e092ac8e8b1c98f3e986de96940663faKeith Whitwell if (ctx->aelt_context) 854ae0eaf93e092ac8e8b1c98f3e986de96940663faKeith Whitwell return GL_TRUE; 855ae0eaf93e092ac8e8b1c98f3e986de96940663faKeith Whitwell 8564b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell ctx->aelt_context = MALLOC( sizeof(AEcontext) ); 8571fb0a43c16190f4d043b8a0918361bee76b37e5fGareth Hughes if (!ctx->aelt_context) 8584b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell return GL_FALSE; 8594b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 8604b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell AE_CONTEXT(ctx)->NewState = ~0; 8614b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell return GL_TRUE; 8624b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell} 8634b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 8644b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 8654b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwellvoid _ae_destroy_context( GLcontext *ctx ) 8664b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell{ 8674b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell if ( AE_CONTEXT( ctx ) ) { 8684b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell FREE( ctx->aelt_context ); 869a0c85249244e1af8dac88076d5f384cf4bd01236Keith Whitwell ctx->aelt_context = NULL; 8704b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell } 871cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 872cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 8734b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 8740d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul/** 8750d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * Make a list of per-vertex functions to call for each glArrayElement call. 8761e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * These functions access the array data (i.e. glVertex, glColor, glNormal, 8771e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * etc). 8781e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * Note: this may be called during display list construction. 8790d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul */ 8804b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwellstatic void _ae_update_state( GLcontext *ctx ) 881cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 8824b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell AEcontext *actx = AE_CONTEXT(ctx); 8834b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell AEarray *aa = actx->arrays; 8840d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul AEattrib *at = actx->attribs; 885db07de057f10ab7ab5be84352b674b200a0a9e22Brian Paul GLuint i; 886cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 8871e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul /* conventional vertex arrays */ 8881e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.Index.Enabled) { 889cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell aa->array = &ctx->Array.Index; 8902615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = IndexFuncs[TYPE_IDX(aa->array->Type)]; 891cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell aa++; 892cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell } 893cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell if (ctx->Array.EdgeFlag.Enabled) { 8944b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell aa->array = &ctx->Array.EdgeFlag; 89594987beb2c9e87d9c55db5cb7c089dc77f78df94Adam Jackson aa->func = (array_func) EdgeFlagv; 896faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger aa++; 897faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger } 8981e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.Normal.Enabled) { 8991e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.Normal; 9002615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = NormalFuncs[TYPE_IDX(aa->array->Type)]; 9011e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9021e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9031e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.Color.Enabled) { 9041e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.Color; 9052615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = ColorFuncs[aa->array->Size-3][TYPE_IDX(aa->array->Type)]; 9061e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9071e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9081e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.SecondaryColor.Enabled) { 9091e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.SecondaryColor; 9102615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = SecondaryColorFuncs[TYPE_IDX(aa->array->Type)]; 9111e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9121e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9131e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.FogCoord.Enabled) { 9141e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.FogCoord; 9152615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = FogCoordFuncs[TYPE_IDX(aa->array->Type)]; 9161e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9171e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9181e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul for (i = 0; i < ctx->Const.MaxTextureCoordUnits; i++) { 9191e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.TexCoord[i].Enabled) { 9201e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul /* NOTE: we use generic glVertexAttrib functions here. 9211e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * If we ever de-alias conventional/generic vertex attribs this 9221e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * will have to change. 9231e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul */ 9241e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul struct gl_client_array *attribArray = &ctx->Array.TexCoord[i]; 9251e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul at->array = attribArray; 926b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul at->func = AttribFuncsNV[at->array->Normalized][at->array->Size-1][TYPE_IDX(at->array->Type)]; 9279d1ff8c1bb56b9ba0d3bf4552351d8bff6620ef2Brian Paul at->index = VERT_ATTRIB_TEX0 + i; 9281e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul at++; 9290d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul } 9301e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 931cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 9321e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul /* generic vertex attribute arrays */ 9331e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul for (i = 1; i < VERT_ATTRIB_MAX; i++) { /* skip zero! */ 9341e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.VertexAttrib[i].Enabled) { 9351e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul struct gl_client_array *attribArray = &ctx->Array.VertexAttrib[i]; 9360d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul at->array = attribArray; 9370d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* Note: we can't grab the _glapi_Dispatch->VertexAttrib1fvNV 9380d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * function pointer here (for float arrays) since the pointer may 9390d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * change from one execution of _ae_loopback_array_elt() to 9400d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul * the next. Doing so caused UT to break. 9410d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul */ 942b5b8d22c4ee921dff99b898a5907023b20670a27Brian Paul at->func = AttribFuncsNV[at->array->Normalized][at->array->Size-1][TYPE_IDX(at->array->Type)]; 9431e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul at->index = i; 9440d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul at++; 9450d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul } 946faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger } 9471e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul 9481e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul /* finally, vertex position */ 9491e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul if (ctx->Array.VertexAttrib[0].Enabled) { 9501e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul /* Use glVertex(v) instead of glVertexAttrib(0, v) to be sure it's 9511e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * issued as the last (proviking) attribute). 9521e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul */ 9531e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.VertexAttrib[0]; 9541e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul assert(aa->array->Size >= 2); /* XXX fix someday? */ 9552615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)]; 9561e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9571e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9581e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul else if (ctx->Array.Vertex.Enabled) { 9591e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa->array = &ctx->Array.Vertex; 9602615e81620bf91cc642b3373c41353b440242feeBrian Paul aa->func = VertexFuncs[aa->array->Size-2][TYPE_IDX(aa->array->Type)]; 9611e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul aa++; 9621e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul } 9631e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul 9640d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul ASSERT(at - actx->attribs <= VERT_ATTRIB_MAX); 9650d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul ASSERT(aa - actx->arrays < 32); 9660d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul at->func = NULL; /* terminate the list */ 9670d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul aa->func = NULL; /* terminate the list */ 968faaf78aeb0e18c75c9b204a634f296b9c056cf5cRoland Scheidegger 969cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell actx->NewState = 0; 970cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 971cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 972cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 9731e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul/** 9741e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * Called via glArrayElement() and glDrawArrays(). 9751e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * Issue the glNormal, glVertex, glColor, glVertexAttrib, etc functions 9761e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * for all enabled vertex arrays (for elt-th element). 9771e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul * Note: this may be called during display list construction. 9781e3d868ffbec46eecb85b4aaf6990d9ad69e830fBrian Paul */ 979d6745697b625a6a5b7d6e3d7dd5f5510f96e277aKarl Schultzvoid GLAPIENTRY _ae_loopback_array_elt( GLint elt ) 980cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 981cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell GET_CURRENT_CONTEXT(ctx); 9820d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const AEcontext *actx = AE_CONTEXT(ctx); 9830d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const AEarray *aa; 9840d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const AEattrib *at; 9854b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell 9864b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell if (actx->NewState) 9874b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell _ae_update_state( ctx ); 988cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 9890d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* generic attributes */ 9900d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul for (at = actx->attribs; at->func; at++) { 9910d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const GLubyte *src = at->array->BufferObj->Data 99279b372b92a42aeee11f0500fefe8fc92126e39e3Brian Paul + (unsigned long) at->array->Ptr 9930d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul + elt * at->array->StrideB; 9940d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul at->func( at->index, src ); 99553ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul } 99653ad0369721966c67bf6edad59c74e9ba7891fa5Brian Paul 9970d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul /* conventional arrays */ 9980d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul for (aa = actx->arrays; aa->func ; aa++) { 9990d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul const GLubyte *src = aa->array->BufferObj->Data 100079b372b92a42aeee11f0500fefe8fc92126e39e3Brian Paul + (unsigned long) aa->array->Ptr 10010d4393a38a2237bb65fbd38b8da73ac328a967d0Brian Paul + elt * aa->array->StrideB; 10020aa8a1062a06616fad18a1901afb5fa67fdcf82aBrian Paul aa->func( src ); 1003cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell } 1004cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 1005cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 1006cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell 10074b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwellvoid _ae_invalidate_state( GLcontext *ctx, GLuint new_state ) 1008cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell{ 10094b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell AE_CONTEXT(ctx)->NewState |= new_state; 1010cab974cf6c2dbfbf5dd5d291e1aae0f8eeb34290Keith Whitwell} 1011