blob: 29215697572b31fb06f6c200b99485524cc2e834 [file] [log] [blame]
Keith Whitwell6dc85572003-07-17 13:43:59 +00001/**
2 * \file api_loopback.c
3 *
4 * \author Keith Whitwell <keith@tungstengraphics.com>
5 */
6
Brian Paul50478de2000-11-27 18:17:09 +00007/*
8 * Mesa 3-D graphics library
Brian Paul7faf5192004-10-29 04:00:50 +00009 * Version: 6.3
Gareth Hughes22144ab2001-03-12 00:48:37 +000010 *
Brian Paule98986b2004-01-21 04:13:49 +000011 * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
Gareth Hughes22144ab2001-03-12 00:48:37 +000012 *
Brian Paul50478de2000-11-27 18:17:09 +000013 * Permission is hereby granted, free of charge, to any person obtaining a
14 * copy of this software and associated documentation files (the "Software"),
15 * to deal in the Software without restriction, including without limitation
16 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17 * and/or sell copies of the Software, and to permit persons to whom the
18 * Software is furnished to do so, subject to the following conditions:
Gareth Hughes22144ab2001-03-12 00:48:37 +000019 *
Brian Paul50478de2000-11-27 18:17:09 +000020 * The above copyright notice and this permission notice shall be included
21 * in all copies or substantial portions of the Software.
Gareth Hughes22144ab2001-03-12 00:48:37 +000022 *
Brian Paul50478de2000-11-27 18:17:09 +000023 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
27 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
28 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Brian Paul50478de2000-11-27 18:17:09 +000029 */
30
31
Keith Whitwellb0149862000-11-24 10:30:04 +000032#include "glheader.h"
Brian Paul03c0c2e2002-01-14 16:06:35 +000033#include "glapi.h"
Keith Whitwellb0149862000-11-24 10:30:04 +000034#include "glapitable.h"
35#include "macros.h"
36#include "colormac.h"
37#include "api_loopback.h"
Ian Romanickc1d455f2004-05-27 00:03:53 +000038#include "glthread.h"
Keith Whitwellb0149862000-11-24 10:30:04 +000039
40/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc
41 * calls to a smaller set of driver-provided formats. Currently just
42 * go back to dispatch to find these (eg. call glNormal3f directly),
43 * hence 'loopback'.
44 *
45 * The driver must supply all of the remaining entry points, which are
Keith Whitwell9aff6cf2000-11-24 15:21:59 +000046 * listed in dd.h. The easiest way for a driver to do this is to
Keith Whitwellb0149862000-11-24 10:30:04 +000047 * install the supplied software t&l module.
48 */
Ian Romanickc1d455f2004-05-27 00:03:53 +000049#define COLORF(r,g,b,a) GL_CALL(Color4f)(r,g,b,a)
50#define VERTEX2(x,y) GL_CALL(Vertex2f)(x,y)
51#define VERTEX3(x,y,z) GL_CALL(Vertex3f)(x,y,z)
52#define VERTEX4(x,y,z,w) GL_CALL(Vertex4f)(x,y,z,w)
53#define NORMAL(x,y,z) GL_CALL(Normal3f)(x,y,z)
54#define TEXCOORD1(s) GL_CALL(TexCoord1f)(s)
55#define TEXCOORD2(s,t) GL_CALL(TexCoord2f)(s,t)
56#define TEXCOORD3(s,t,u) GL_CALL(TexCoord3f)(s,t,u)
57#define TEXCOORD4(s,t,u,v) GL_CALL(TexCoord4f)(s,t,u,v)
58#define INDEX(c) GL_CALL(Indexf)(c)
59#define MULTI_TEXCOORD1(z,s) GL_CALL(MultiTexCoord1fARB)(z,s)
60#define MULTI_TEXCOORD2(z,s,t) GL_CALL(MultiTexCoord2fARB)(z,s,t)
61#define MULTI_TEXCOORD3(z,s,t,u) GL_CALL(MultiTexCoord3fARB)(z,s,t,u)
62#define MULTI_TEXCOORD4(z,s,t,u,v) GL_CALL(MultiTexCoord4fARB)(z,s,t,u,v)
63#define EVALCOORD1(x) GL_CALL(EvalCoord1f)(x)
64#define EVALCOORD2(x,y) GL_CALL(EvalCoord2f)(x,y)
65#define MATERIALFV(a,b,c) GL_CALL(Materialfv)(a,b,c)
66#define RECTF(a,b,c,d) GL_CALL(Rectf)(a,b,c,d)
Keith Whitwellfc00cbe2001-12-20 15:30:45 +000067
Brian Paulb5b8d222004-11-27 20:07:08 +000068#define ATTRIB1NV(index,x) GL_CALL(VertexAttrib1fNV)(index,x)
69#define ATTRIB2NV(index,x,y) GL_CALL(VertexAttrib2fNV)(index,x,y)
70#define ATTRIB3NV(index,x,y,z) GL_CALL(VertexAttrib3fNV)(index,x,y,z)
71#define ATTRIB4NV(index,x,y,z,w) GL_CALL(VertexAttrib4fNV)(index,x,y,z,w)
72#define ATTRIB1ARB(index,x) GL_CALL(VertexAttrib1fARB)(index,x)
73#define ATTRIB2ARB(index,x,y) GL_CALL(VertexAttrib2fARB)(index,x,y)
74#define ATTRIB3ARB(index,x,y,z) GL_CALL(VertexAttrib3fARB)(index,x,y,z)
75#define ATTRIB4ARB(index,x,y,z,w) GL_CALL(VertexAttrib4fARB)(index,x,y,z,w)
76#define FOGCOORDF(x) GL_CALL(FogCoordfEXT)(x)
77#define SECONDARYCOLORF(a,b,c) GL_CALL(SecondaryColor3fEXT)(a,b,c)
Keith Whitwellb0149862000-11-24 10:30:04 +000078
Kendall Bennettc40d1dd2003-10-21 22:22:17 +000079static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +000080loopback_Color3b_f( GLbyte red, GLbyte green, GLbyte blue )
81{
Gareth Hughes22144ab2001-03-12 00:48:37 +000082 COLORF( BYTE_TO_FLOAT(red),
Keith Whitwellb0149862000-11-24 10:30:04 +000083 BYTE_TO_FLOAT(green),
Gareth Hughes22144ab2001-03-12 00:48:37 +000084 BYTE_TO_FLOAT(blue),
Keith Whitwellb0149862000-11-24 10:30:04 +000085 1.0 );
86}
87
Kendall Bennettc40d1dd2003-10-21 22:22:17 +000088static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +000089loopback_Color3d_f( GLdouble red, GLdouble green, GLdouble blue )
90{
Brian Paul7c276322001-09-14 21:36:43 +000091 COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 );
Keith Whitwellb0149862000-11-24 10:30:04 +000092}
93
Kendall Bennettc40d1dd2003-10-21 22:22:17 +000094static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +000095loopback_Color3i_f( GLint red, GLint green, GLint blue )
96{
97 COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
98 INT_TO_FLOAT(blue), 1.0);
99}
100
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000101static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000102loopback_Color3s_f( GLshort red, GLshort green, GLshort blue )
103{
104 COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
105 SHORT_TO_FLOAT(blue), 1.0);
106}
107
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000108static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000109loopback_Color3ui_f( GLuint red, GLuint green, GLuint blue )
110{
111 COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
112 UINT_TO_FLOAT(blue), 1.0 );
113}
114
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000115static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000116loopback_Color3us_f( GLushort red, GLushort green, GLushort blue )
117{
118 COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
119 USHORT_TO_FLOAT(blue), 1.0 );
120}
121
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000122static void GLAPIENTRY
123loopback_Color3ub_f( GLubyte red, GLubyte green, GLubyte blue )
124{
125 COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
126 UBYTE_TO_FLOAT(blue), 1.0 );
127}
128
Keith Whitwellb0149862000-11-24 10:30:04 +0000129
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000130static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000131loopback_Color3bv_f( const GLbyte *v )
132{
133 COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
134 BYTE_TO_FLOAT(v[2]), 1.0 );
135}
136
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000137static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000138loopback_Color3dv_f( const GLdouble *v )
139{
Brian Paul7c276322001-09-14 21:36:43 +0000140 COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 );
Keith Whitwellb0149862000-11-24 10:30:04 +0000141}
142
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000143static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000144loopback_Color3iv_f( const GLint *v )
145{
146 COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
147 INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) );
148}
149
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000150static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000151loopback_Color3sv_f( const GLshort *v )
152{
153 COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
154 SHORT_TO_FLOAT(v[2]), 1.0 );
155}
156
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000157static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000158loopback_Color3uiv_f( const GLuint *v )
159{
160 COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
161 UINT_TO_FLOAT(v[2]), 1.0 );
162}
163
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000164static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000165loopback_Color3usv_f( const GLushort *v )
166{
167 COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
168 USHORT_TO_FLOAT(v[2]), 1.0 );
169}
170
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000171static void GLAPIENTRY
172loopback_Color3ubv_f( const GLubyte *v )
173{
174 COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
175 UBYTE_TO_FLOAT(v[2]), 1.0 );
176}
177
Keith Whitwellb0149862000-11-24 10:30:04 +0000178
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000179static void GLAPIENTRY
Gareth Hughes22144ab2001-03-12 00:48:37 +0000180loopback_Color4b_f( GLbyte red, GLbyte green, GLbyte blue,
Keith Whitwellb0149862000-11-24 10:30:04 +0000181 GLbyte alpha )
182{
183 COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green),
184 BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) );
185}
186
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000187static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000188loopback_Color4d_f( GLdouble red, GLdouble green, GLdouble blue,
189 GLdouble alpha )
190{
Brian Paul7c276322001-09-14 21:36:43 +0000191 COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha );
Keith Whitwellb0149862000-11-24 10:30:04 +0000192}
193
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000194static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000195loopback_Color4i_f( GLint red, GLint green, GLint blue, GLint alpha )
196{
197 COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
198 INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) );
199}
200
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000201static void GLAPIENTRY
Gareth Hughes22144ab2001-03-12 00:48:37 +0000202loopback_Color4s_f( GLshort red, GLshort green, GLshort blue,
Keith Whitwellb0149862000-11-24 10:30:04 +0000203 GLshort alpha )
204{
205 COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
206 SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) );
207}
208
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000209static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000210loopback_Color4ui_f( GLuint red, GLuint green, GLuint blue, GLuint alpha )
211{
212 COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
213 UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) );
214}
215
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000216static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000217loopback_Color4us_f( GLushort red, GLushort green, GLushort blue, GLushort alpha )
218{
219 COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
220 USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) );
221}
222
Karl Schultzd6745692003-12-04 20:23:44 +0000223static void GLAPIENTRY
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000224loopback_Color4ub_f( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha )
225{
226 COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
227 UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) );
228}
229
Keith Whitwellb0149862000-11-24 10:30:04 +0000230
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000231static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000232loopback_Color4iv_f( const GLint *v )
233{
234 COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
235 INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) );
236}
237
238
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000239static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000240loopback_Color4bv_f( const GLbyte *v )
241{
242 COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
243 BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) );
244}
245
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000246static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000247loopback_Color4dv_f( const GLdouble *v )
248{
Brian Paul7c276322001-09-14 21:36:43 +0000249 COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000250}
251
252
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000253static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000254loopback_Color4sv_f( const GLshort *v)
255{
256 COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
257 SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) );
258}
259
260
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000261static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000262loopback_Color4uiv_f( const GLuint *v)
263{
264 COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
265 UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) );
266}
267
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000268static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000269loopback_Color4usv_f( const GLushort *v)
270{
271 COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
272 USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) );
273}
274
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000275static void GLAPIENTRY
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000276loopback_Color4ubv_f( const GLubyte *v)
277{
278 COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
279 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) );
280}
281
282static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000283loopback_FogCoorddEXT( GLdouble d )
284{
Brian Paul7c276322001-09-14 21:36:43 +0000285 FOGCOORDF( (GLfloat) d );
Keith Whitwellb0149862000-11-24 10:30:04 +0000286}
287
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000288static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000289loopback_FogCoorddvEXT( const GLdouble *v )
290{
Brian Paul7c276322001-09-14 21:36:43 +0000291 FOGCOORDF( (GLfloat) *v );
Keith Whitwellb0149862000-11-24 10:30:04 +0000292}
293
294
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000295static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000296loopback_Indexd( GLdouble c )
297{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000298 INDEX( (GLfloat) c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000299}
300
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000301static void GLAPIENTRY
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000302loopback_Indexi( GLint c )
Keith Whitwellb0149862000-11-24 10:30:04 +0000303{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000304 INDEX( (GLfloat) c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000305}
306
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000307static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000308loopback_Indexs( GLshort c )
309{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000310 INDEX( (GLfloat) c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000311}
312
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000313static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000314loopback_Indexub( GLubyte c )
315{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000316 INDEX( (GLfloat) c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000317}
318
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000319static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000320loopback_Indexdv( const GLdouble *c )
321{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000322 INDEX( (GLfloat) *c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000323}
324
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000325static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000326loopback_Indexiv( const GLint *c )
327{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000328 INDEX( (GLfloat) *c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000329}
330
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000331static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000332loopback_Indexsv( const GLshort *c )
333{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000334 INDEX( (GLfloat) *c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000335}
336
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000337static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000338loopback_Indexubv( const GLubyte *c )
339{
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000340 INDEX( (GLfloat) *c );
Keith Whitwellb0149862000-11-24 10:30:04 +0000341}
342
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000343static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000344loopback_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz )
345{
346 NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) );
347}
348
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000349static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000350loopback_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz )
351{
Brian Paul7c276322001-09-14 21:36:43 +0000352 NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz);
Keith Whitwellb0149862000-11-24 10:30:04 +0000353}
354
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000355static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000356loopback_Normal3i( GLint nx, GLint ny, GLint nz )
357{
358 NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) );
359}
360
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000361static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000362loopback_Normal3s( GLshort nx, GLshort ny, GLshort nz )
363{
364 NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) );
365}
366
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000367static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000368loopback_Normal3bv( const GLbyte *v )
369{
370 NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) );
371}
372
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000373static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000374loopback_Normal3dv( const GLdouble *v )
375{
Brian Paul7c276322001-09-14 21:36:43 +0000376 NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000377}
378
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000379static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000380loopback_Normal3iv( const GLint *v )
381{
382 NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) );
383}
384
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000385static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000386loopback_Normal3sv( const GLshort *v )
387{
388 NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) );
389}
390
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000391static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000392loopback_TexCoord1d( GLdouble s )
393{
Brian Paul7c276322001-09-14 21:36:43 +0000394 TEXCOORD1((GLfloat) s);
Keith Whitwellb0149862000-11-24 10:30:04 +0000395}
396
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000397static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000398loopback_TexCoord1i( GLint s )
399{
Brian Paul7c276322001-09-14 21:36:43 +0000400 TEXCOORD1((GLfloat) s);
Keith Whitwellb0149862000-11-24 10:30:04 +0000401}
402
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000403static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000404loopback_TexCoord1s( GLshort s )
405{
Brian Paul7c276322001-09-14 21:36:43 +0000406 TEXCOORD1((GLfloat) s);
Keith Whitwellb0149862000-11-24 10:30:04 +0000407}
408
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000409static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000410loopback_TexCoord2d( GLdouble s, GLdouble t )
411{
Brian Paul7c276322001-09-14 21:36:43 +0000412 TEXCOORD2((GLfloat) s,(GLfloat) t);
Keith Whitwellb0149862000-11-24 10:30:04 +0000413}
414
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000415static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000416loopback_TexCoord2s( GLshort s, GLshort t )
417{
Brian Paul7c276322001-09-14 21:36:43 +0000418 TEXCOORD2((GLfloat) s,(GLfloat) t);
Keith Whitwellb0149862000-11-24 10:30:04 +0000419}
420
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000421static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000422loopback_TexCoord2i( GLint s, GLint t )
423{
Brian Paul7c276322001-09-14 21:36:43 +0000424 TEXCOORD2((GLfloat) s,(GLfloat) t);
Keith Whitwellb0149862000-11-24 10:30:04 +0000425}
426
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000427static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000428loopback_TexCoord3d( GLdouble s, GLdouble t, GLdouble r )
429{
Brian Paul7c276322001-09-14 21:36:43 +0000430 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
Keith Whitwellb0149862000-11-24 10:30:04 +0000431}
432
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000433static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000434loopback_TexCoord3i( GLint s, GLint t, GLint r )
435{
Brian Paul7c276322001-09-14 21:36:43 +0000436 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
Keith Whitwellb0149862000-11-24 10:30:04 +0000437}
438
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000439static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000440loopback_TexCoord3s( GLshort s, GLshort t, GLshort r )
441{
Brian Paul7c276322001-09-14 21:36:43 +0000442 TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
Keith Whitwellb0149862000-11-24 10:30:04 +0000443}
444
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000445static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000446loopback_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q )
447{
Brian Paul7c276322001-09-14 21:36:43 +0000448 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
Keith Whitwellb0149862000-11-24 10:30:04 +0000449}
450
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000451static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000452loopback_TexCoord4i( GLint s, GLint t, GLint r, GLint q )
453{
Brian Paul7c276322001-09-14 21:36:43 +0000454 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
Keith Whitwellb0149862000-11-24 10:30:04 +0000455}
456
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000457static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000458loopback_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q )
459{
Brian Paul7c276322001-09-14 21:36:43 +0000460 TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
Keith Whitwellb0149862000-11-24 10:30:04 +0000461}
462
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000463static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000464loopback_TexCoord1dv( const GLdouble *v )
465{
Brian Paul7c276322001-09-14 21:36:43 +0000466 TEXCOORD1((GLfloat) v[0]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000467}
468
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000469static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000470loopback_TexCoord1iv( const GLint *v )
471{
Brian Paul7c276322001-09-14 21:36:43 +0000472 TEXCOORD1((GLfloat) v[0]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000473}
474
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000475static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000476loopback_TexCoord1sv( const GLshort *v )
477{
Brian Paul7c276322001-09-14 21:36:43 +0000478 TEXCOORD1((GLfloat) v[0]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000479}
480
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000481static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000482loopback_TexCoord2dv( const GLdouble *v )
483{
Brian Paul7c276322001-09-14 21:36:43 +0000484 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000485}
486
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000487static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000488loopback_TexCoord2iv( const GLint *v )
489{
Brian Paul7c276322001-09-14 21:36:43 +0000490 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000491}
492
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000493static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000494loopback_TexCoord2sv( const GLshort *v )
495{
Brian Paul7c276322001-09-14 21:36:43 +0000496 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000497}
498
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000499static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000500loopback_TexCoord3dv( const GLdouble *v )
501{
Brian Paul7c276322001-09-14 21:36:43 +0000502 TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000503}
504
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000505static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000506loopback_TexCoord3iv( const GLint *v )
507{
Brian Paul7c276322001-09-14 21:36:43 +0000508 TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000509}
510
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000511static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000512loopback_TexCoord3sv( const GLshort *v )
513{
Brian Paul7c276322001-09-14 21:36:43 +0000514 TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000515}
516
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000517static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000518loopback_TexCoord4dv( const GLdouble *v )
519{
Brian Paul7c276322001-09-14 21:36:43 +0000520 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000521}
522
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000523static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000524loopback_TexCoord4iv( const GLint *v )
525{
Brian Paul7c276322001-09-14 21:36:43 +0000526 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000527}
528
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000529static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000530loopback_TexCoord4sv( const GLshort *v )
531{
Brian Paul7c276322001-09-14 21:36:43 +0000532 TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000533}
534
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000535static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000536loopback_Vertex2d( GLdouble x, GLdouble y )
537{
538 VERTEX2( (GLfloat) x, (GLfloat) y );
539}
540
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000541static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000542loopback_Vertex2i( GLint x, GLint y )
543{
544 VERTEX2( (GLfloat) x, (GLfloat) y );
545}
546
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000547static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000548loopback_Vertex2s( GLshort x, GLshort y )
549{
550 VERTEX2( (GLfloat) x, (GLfloat) y );
551}
552
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000553static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000554loopback_Vertex3d( GLdouble x, GLdouble y, GLdouble z )
555{
556 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
557}
558
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000559static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000560loopback_Vertex3i( GLint x, GLint y, GLint z )
561{
562 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
563}
564
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000565static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000566loopback_Vertex3s( GLshort x, GLshort y, GLshort z )
567{
568 VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
569}
570
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000571static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000572loopback_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w )
573{
574 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
575}
576
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000577static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000578loopback_Vertex4i( GLint x, GLint y, GLint z, GLint w )
579{
580 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
581}
582
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000583static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000584loopback_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w )
585{
586 VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
587}
588
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000589static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000590loopback_Vertex2dv( const GLdouble *v )
591{
592 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
593}
594
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000595static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000596loopback_Vertex2iv( const GLint *v )
597{
598 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
599}
600
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000601static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000602loopback_Vertex2sv( const GLshort *v )
603{
604 VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
605}
606
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000607static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000608loopback_Vertex3dv( const GLdouble *v )
609{
610 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
611}
612
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000613static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000614loopback_Vertex3iv( const GLint *v )
615{
616 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
617}
618
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000619static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000620loopback_Vertex3sv( const GLshort *v )
621{
622 VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
623}
624
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000625static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000626loopback_Vertex4dv( const GLdouble *v )
627{
Gareth Hughes22144ab2001-03-12 00:48:37 +0000628 VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
Keith Whitwellb0149862000-11-24 10:30:04 +0000629 (GLfloat) v[2], (GLfloat) v[3] );
630}
631
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000632static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000633loopback_Vertex4iv( const GLint *v )
634{
Gareth Hughes22144ab2001-03-12 00:48:37 +0000635 VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
Keith Whitwellb0149862000-11-24 10:30:04 +0000636 (GLfloat) v[2], (GLfloat) v[3] );
637}
638
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000639static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000640loopback_Vertex4sv( const GLshort *v )
641{
Gareth Hughes22144ab2001-03-12 00:48:37 +0000642 VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
Keith Whitwellb0149862000-11-24 10:30:04 +0000643 (GLfloat) v[2], (GLfloat) v[3] );
644}
645
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000646static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000647loopback_MultiTexCoord1dARB(GLenum target, GLdouble s)
648{
Brian Paul7c276322001-09-14 21:36:43 +0000649 MULTI_TEXCOORD1( target, (GLfloat) s );
Keith Whitwellb0149862000-11-24 10:30:04 +0000650}
651
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000652static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000653loopback_MultiTexCoord1dvARB(GLenum target, const GLdouble *v)
654{
Brian Paul7c276322001-09-14 21:36:43 +0000655 MULTI_TEXCOORD1( target, (GLfloat) v[0] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000656}
657
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000658static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000659loopback_MultiTexCoord1iARB(GLenum target, GLint s)
660{
Brian Paul7c276322001-09-14 21:36:43 +0000661 MULTI_TEXCOORD1( target, (GLfloat) s );
Keith Whitwellb0149862000-11-24 10:30:04 +0000662}
663
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000664static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000665loopback_MultiTexCoord1ivARB(GLenum target, const GLint *v)
666{
Brian Paul7c276322001-09-14 21:36:43 +0000667 MULTI_TEXCOORD1( target, (GLfloat) v[0] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000668}
669
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000670static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000671loopback_MultiTexCoord1sARB(GLenum target, GLshort s)
672{
Brian Paul7c276322001-09-14 21:36:43 +0000673 MULTI_TEXCOORD1( target, (GLfloat) s );
Keith Whitwellb0149862000-11-24 10:30:04 +0000674}
675
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000676static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000677loopback_MultiTexCoord1svARB(GLenum target, const GLshort *v)
678{
Brian Paul7c276322001-09-14 21:36:43 +0000679 MULTI_TEXCOORD1( target, (GLfloat) v[0] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000680}
681
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000682static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000683loopback_MultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t)
684{
Brian Paul7c276322001-09-14 21:36:43 +0000685 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
Keith Whitwellb0149862000-11-24 10:30:04 +0000686}
687
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000688static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000689loopback_MultiTexCoord2dvARB(GLenum target, const GLdouble *v)
690{
Brian Paul7c276322001-09-14 21:36:43 +0000691 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000692}
693
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000694static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000695loopback_MultiTexCoord2iARB(GLenum target, GLint s, GLint t)
696{
Brian Paul7c276322001-09-14 21:36:43 +0000697 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
Keith Whitwellb0149862000-11-24 10:30:04 +0000698}
699
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000700static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000701loopback_MultiTexCoord2ivARB(GLenum target, const GLint *v)
702{
Brian Paul7c276322001-09-14 21:36:43 +0000703 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000704}
705
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000706static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000707loopback_MultiTexCoord2sARB(GLenum target, GLshort s, GLshort t)
708{
Brian Paul7c276322001-09-14 21:36:43 +0000709 MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
Keith Whitwellb0149862000-11-24 10:30:04 +0000710}
711
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000712static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000713loopback_MultiTexCoord2svARB(GLenum target, const GLshort *v)
714{
Brian Paul7c276322001-09-14 21:36:43 +0000715 MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000716}
717
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000718static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000719loopback_MultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r)
720{
Brian Paul7c276322001-09-14 21:36:43 +0000721 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
Keith Whitwellb0149862000-11-24 10:30:04 +0000722}
723
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000724static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000725loopback_MultiTexCoord3dvARB(GLenum target, const GLdouble *v)
726{
Brian Paul7c276322001-09-14 21:36:43 +0000727 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000728}
729
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000730static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000731loopback_MultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r)
732{
Brian Paul7c276322001-09-14 21:36:43 +0000733 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
Keith Whitwellb0149862000-11-24 10:30:04 +0000734}
735
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000736static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000737loopback_MultiTexCoord3ivARB(GLenum target, const GLint *v)
738{
Brian Paul7c276322001-09-14 21:36:43 +0000739 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000740}
741
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000742static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000743loopback_MultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r)
744{
Brian Paul7c276322001-09-14 21:36:43 +0000745 MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
Keith Whitwellb0149862000-11-24 10:30:04 +0000746}
747
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000748static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000749loopback_MultiTexCoord3svARB(GLenum target, const GLshort *v)
750{
Brian Paul7c276322001-09-14 21:36:43 +0000751 MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000752}
753
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000754static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000755loopback_MultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
756{
Brian Paul7c276322001-09-14 21:36:43 +0000757 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
758 (GLfloat) r, (GLfloat) q );
Keith Whitwellb0149862000-11-24 10:30:04 +0000759}
760
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000761static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000762loopback_MultiTexCoord4dvARB(GLenum target, const GLdouble *v)
763{
Brian Paul7c276322001-09-14 21:36:43 +0000764 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
765 (GLfloat) v[2], (GLfloat) v[3] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000766}
767
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000768static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000769loopback_MultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q)
770{
Brian Paul7c276322001-09-14 21:36:43 +0000771 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
772 (GLfloat) r, (GLfloat) q );
Keith Whitwellb0149862000-11-24 10:30:04 +0000773}
774
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000775static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000776loopback_MultiTexCoord4ivARB(GLenum target, const GLint *v)
777{
Brian Paul7c276322001-09-14 21:36:43 +0000778 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
779 (GLfloat) v[2], (GLfloat) v[3] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000780}
781
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000782static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000783loopback_MultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
784{
Brian Paul7c276322001-09-14 21:36:43 +0000785 MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
786 (GLfloat) r, (GLfloat) q );
Keith Whitwellb0149862000-11-24 10:30:04 +0000787}
788
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000789static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000790loopback_MultiTexCoord4svARB(GLenum target, const GLshort *v)
791{
Brian Paul7c276322001-09-14 21:36:43 +0000792 MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
793 (GLfloat) v[2], (GLfloat) v[3] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000794}
795
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000796static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000797loopback_EvalCoord2dv( const GLdouble *u )
798{
799 EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] );
800}
801
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000802static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000803loopback_EvalCoord2fv( const GLfloat *u )
804{
805 EVALCOORD2( u[0], u[1] );
806}
807
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000808static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000809loopback_EvalCoord2d( GLdouble u, GLdouble v )
810{
811 EVALCOORD2( (GLfloat) u, (GLfloat) v );
812}
813
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000814static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000815loopback_EvalCoord1dv( const GLdouble *u )
816{
817 EVALCOORD1( (GLfloat) *u );
818}
819
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000820static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000821loopback_EvalCoord1fv( const GLfloat *u )
822{
823 EVALCOORD1( (GLfloat) *u );
824}
825
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000826static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000827loopback_EvalCoord1d( GLdouble u )
828{
829 EVALCOORD1( (GLfloat) u );
830}
831
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000832static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000833loopback_Materialf( GLenum face, GLenum pname, GLfloat param )
834{
835 GLfloat fparam[4];
836 fparam[0] = param;
837 MATERIALFV( face, pname, fparam );
838}
839
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000840static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000841loopback_Materiali(GLenum face, GLenum pname, GLint param )
842{
843 GLfloat p = (GLfloat) param;
844 MATERIALFV(face, pname, &p);
845}
846
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000847static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000848loopback_Materialiv(GLenum face, GLenum pname, const GLint *params )
849{
850 GLfloat fparam[4];
851 switch (pname) {
852 case GL_AMBIENT:
853 case GL_DIFFUSE:
854 case GL_SPECULAR:
855 case GL_EMISSION:
856 case GL_AMBIENT_AND_DIFFUSE:
857 fparam[0] = INT_TO_FLOAT( params[0] );
858 fparam[1] = INT_TO_FLOAT( params[1] );
859 fparam[2] = INT_TO_FLOAT( params[2] );
860 fparam[3] = INT_TO_FLOAT( params[3] );
861 break;
862 case GL_SHININESS:
863 fparam[0] = (GLfloat) params[0];
864 break;
865 case GL_COLOR_INDEXES:
866 fparam[0] = (GLfloat) params[0];
867 fparam[1] = (GLfloat) params[1];
868 fparam[2] = (GLfloat) params[2];
869 break;
870 default:
871 ;
872 }
873 MATERIALFV(face, pname, fparam);
874}
875
876
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000877static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000878loopback_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
879{
Brian Paul7c276322001-09-14 21:36:43 +0000880 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
Keith Whitwellb0149862000-11-24 10:30:04 +0000881}
882
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000883static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000884loopback_Rectdv(const GLdouble *v1, const GLdouble *v2)
885{
Brian Paul7c276322001-09-14 21:36:43 +0000886 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000887}
888
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000889static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000890loopback_Rectfv(const GLfloat *v1, const GLfloat *v2)
891{
892 RECTF(v1[0], v1[1], v2[0], v2[1]);
893}
894
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000895static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000896loopback_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
897{
Brian Paul7c276322001-09-14 21:36:43 +0000898 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
Keith Whitwellb0149862000-11-24 10:30:04 +0000899}
900
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000901static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000902loopback_Rectiv(const GLint *v1, const GLint *v2)
903{
Brian Paul7c276322001-09-14 21:36:43 +0000904 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000905}
906
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000907static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000908loopback_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
909{
Brian Paul7c276322001-09-14 21:36:43 +0000910 RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
Keith Whitwellb0149862000-11-24 10:30:04 +0000911}
912
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000913static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000914loopback_Rectsv(const GLshort *v1, const GLshort *v2)
915{
Brian Paul7c276322001-09-14 21:36:43 +0000916 RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
Keith Whitwellb0149862000-11-24 10:30:04 +0000917}
918
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000919static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000920loopback_SecondaryColor3bEXT_f( GLbyte red, GLbyte green, GLbyte blue )
921{
922 SECONDARYCOLORF( BYTE_TO_FLOAT(red),
923 BYTE_TO_FLOAT(green),
924 BYTE_TO_FLOAT(blue) );
925}
926
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000927static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000928loopback_SecondaryColor3dEXT_f( GLdouble red, GLdouble green, GLdouble blue )
929{
Brian Paul7c276322001-09-14 21:36:43 +0000930 SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue );
Keith Whitwellb0149862000-11-24 10:30:04 +0000931}
932
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000933static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000934loopback_SecondaryColor3iEXT_f( GLint red, GLint green, GLint blue )
935{
936 SECONDARYCOLORF( INT_TO_FLOAT(red),
937 INT_TO_FLOAT(green),
938 INT_TO_FLOAT(blue));
939}
940
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000941static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000942loopback_SecondaryColor3sEXT_f( GLshort red, GLshort green, GLshort blue )
943{
944 SECONDARYCOLORF(SHORT_TO_FLOAT(red),
945 SHORT_TO_FLOAT(green),
946 SHORT_TO_FLOAT(blue));
947}
948
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000949static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000950loopback_SecondaryColor3uiEXT_f( GLuint red, GLuint green, GLuint blue )
951{
952 SECONDARYCOLORF(UINT_TO_FLOAT(red),
953 UINT_TO_FLOAT(green),
954 UINT_TO_FLOAT(blue));
955}
956
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000957static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000958loopback_SecondaryColor3usEXT_f( GLushort red, GLushort green, GLushort blue )
959{
960 SECONDARYCOLORF(USHORT_TO_FLOAT(red),
961 USHORT_TO_FLOAT(green),
962 USHORT_TO_FLOAT(blue));
963}
964
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000965static void GLAPIENTRY
Keith Whitwellae0eaf92003-11-24 15:23:18 +0000966loopback_SecondaryColor3ubEXT_f( GLubyte red, GLubyte green, GLubyte blue )
967{
968 SECONDARYCOLORF(UBYTE_TO_FLOAT(red),
969 UBYTE_TO_FLOAT(green),
970 UBYTE_TO_FLOAT(blue));
971}
972
973static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000974loopback_SecondaryColor3bvEXT_f( const GLbyte *v )
975{
976 SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]),
977 BYTE_TO_FLOAT(v[1]),
978 BYTE_TO_FLOAT(v[2]));
979}
980
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000981static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000982loopback_SecondaryColor3dvEXT_f( const GLdouble *v )
983{
Brian Paul7c276322001-09-14 21:36:43 +0000984 SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
Keith Whitwellb0149862000-11-24 10:30:04 +0000985}
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000986static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000987loopback_SecondaryColor3ivEXT_f( const GLint *v )
988{
989 SECONDARYCOLORF(INT_TO_FLOAT(v[0]),
990 INT_TO_FLOAT(v[1]),
991 INT_TO_FLOAT(v[2]));
992}
993
Kendall Bennettc40d1dd2003-10-21 22:22:17 +0000994static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +0000995loopback_SecondaryColor3svEXT_f( const GLshort *v )
996{
997 SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]),
998 SHORT_TO_FLOAT(v[1]),
999 SHORT_TO_FLOAT(v[2]));
1000}
1001
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001002static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +00001003loopback_SecondaryColor3uivEXT_f( const GLuint *v )
1004{
1005 SECONDARYCOLORF(UINT_TO_FLOAT(v[0]),
1006 UINT_TO_FLOAT(v[1]),
1007 UINT_TO_FLOAT(v[2]));
1008}
1009
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001010static void GLAPIENTRY
Keith Whitwellb0149862000-11-24 10:30:04 +00001011loopback_SecondaryColor3usvEXT_f( const GLushort *v )
1012{
1013 SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]),
1014 USHORT_TO_FLOAT(v[1]),
1015 USHORT_TO_FLOAT(v[2]));
1016}
1017
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001018static void GLAPIENTRY
1019loopback_SecondaryColor3ubvEXT_f( const GLubyte *v )
1020{
1021 SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]),
1022 UBYTE_TO_FLOAT(v[1]),
1023 UBYTE_TO_FLOAT(v[2]));
1024}
1025
Keith Whitwellb0149862000-11-24 10:30:04 +00001026
Brian Paul86b84272001-12-14 02:50:01 +00001027/*
Brian Paulb5b8d222004-11-27 20:07:08 +00001028 * GL_NV_vertex_program:
1029 * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions.
Brian Paul86b84272001-12-14 02:50:01 +00001030 */
1031
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001032static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001033loopback_VertexAttrib1sNV(GLuint index, GLshort x)
1034{
Brian Paulb5b8d222004-11-27 20:07:08 +00001035 ATTRIB1NV(index, (GLfloat) x);
Brian Paul86b84272001-12-14 02:50:01 +00001036}
1037
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001038static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001039loopback_VertexAttrib1dNV(GLuint index, GLdouble x)
1040{
Brian Paulb5b8d222004-11-27 20:07:08 +00001041 ATTRIB1NV(index, (GLfloat) x);
Brian Paul86b84272001-12-14 02:50:01 +00001042}
1043
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001044static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001045loopback_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y)
1046{
Brian Paulb5b8d222004-11-27 20:07:08 +00001047 ATTRIB2NV(index, (GLfloat) x, y);
Brian Paul86b84272001-12-14 02:50:01 +00001048}
1049
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001050static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001051loopback_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y)
1052{
Brian Paulb5b8d222004-11-27 20:07:08 +00001053 ATTRIB2NV(index, (GLfloat) x, (GLfloat) y);
Brian Paul86b84272001-12-14 02:50:01 +00001054}
1055
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001056static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001057loopback_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z)
1058{
Brian Paulb5b8d222004-11-27 20:07:08 +00001059 ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
Brian Paul86b84272001-12-14 02:50:01 +00001060}
1061
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001062static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001063loopback_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z)
1064{
Brian Paulb5b8d222004-11-27 20:07:08 +00001065 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
Brian Paul86b84272001-12-14 02:50:01 +00001066}
1067
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001068static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001069loopback_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
1070{
Brian Paulb5b8d222004-11-27 20:07:08 +00001071 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
Brian Paul86b84272001-12-14 02:50:01 +00001072}
1073
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001074static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001075loopback_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
1076{
Brian Paulb5b8d222004-11-27 20:07:08 +00001077 ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
Brian Paul86b84272001-12-14 02:50:01 +00001078}
1079
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001080static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001081loopback_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
1082{
Brian Paulb5b8d222004-11-27 20:07:08 +00001083 ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
Brian Paul86b84272001-12-14 02:50:01 +00001084 UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
1085}
1086
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001087static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001088loopback_VertexAttrib1svNV(GLuint index, const GLshort *v)
1089{
Brian Paulb5b8d222004-11-27 20:07:08 +00001090 ATTRIB1NV(index, (GLfloat) v[0]);
Brian Paul86b84272001-12-14 02:50:01 +00001091}
1092
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001093static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001094loopback_VertexAttrib1dvNV(GLuint index, const GLdouble *v)
1095{
Brian Paulb5b8d222004-11-27 20:07:08 +00001096 ATTRIB1NV(index, (GLfloat) v[0]);
Brian Paul86b84272001-12-14 02:50:01 +00001097}
1098
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001099static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001100loopback_VertexAttrib2svNV(GLuint index, const GLshort *v)
1101{
Brian Paulb5b8d222004-11-27 20:07:08 +00001102 ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
Brian Paul86b84272001-12-14 02:50:01 +00001103}
1104
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001105static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001106loopback_VertexAttrib2dvNV(GLuint index, const GLdouble *v)
1107{
Brian Paulb5b8d222004-11-27 20:07:08 +00001108 ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
Brian Paul86b84272001-12-14 02:50:01 +00001109}
1110
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001111static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001112loopback_VertexAttrib3svNV(GLuint index, const GLshort *v)
1113{
Brian Paulb5b8d222004-11-27 20:07:08 +00001114 ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
Brian Paul86b84272001-12-14 02:50:01 +00001115}
1116
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001117static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001118loopback_VertexAttrib3dvNV(GLuint index, const GLdouble *v)
1119{
Brian Paulb5b8d222004-11-27 20:07:08 +00001120 ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
Brian Paul86b84272001-12-14 02:50:01 +00001121}
1122
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001123static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001124loopback_VertexAttrib4svNV(GLuint index, const GLshort *v)
1125{
Brian Paulb5b8d222004-11-27 20:07:08 +00001126 ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2],
Keith Whitwell33ce4052003-04-05 07:29:23 +00001127 (GLfloat)v[3]);
Brian Paul86b84272001-12-14 02:50:01 +00001128}
1129
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001130static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001131loopback_VertexAttrib4dvNV(GLuint index, const GLdouble *v)
1132{
Brian Paulb5b8d222004-11-27 20:07:08 +00001133 ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paul86b84272001-12-14 02:50:01 +00001134}
1135
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001136static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001137loopback_VertexAttrib4ubvNV(GLuint index, const GLubyte *v)
1138{
Brian Paulb5b8d222004-11-27 20:07:08 +00001139 ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
Brian Paul86b84272001-12-14 02:50:01 +00001140 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
1141}
1142
1143
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001144static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001145loopback_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v)
1146{
1147 GLint i;
1148 for (i = n - 1; i >= 0; i--)
1149 loopback_VertexAttrib1svNV(index + i, v + i);
1150}
1151
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001152static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001153loopback_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v)
1154{
1155 GLint i;
1156 for (i = n - 1; i >= 0; i--)
Brian Paulb5b8d222004-11-27 20:07:08 +00001157 ATTRIB1NV(index + i, v[i]);
Brian Paul86b84272001-12-14 02:50:01 +00001158}
1159
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001160static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001161loopback_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v)
1162{
1163 GLint i;
1164 for (i = n - 1; i >= 0; i--)
1165 loopback_VertexAttrib1dvNV(index + i, v + i);
1166}
1167
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001168static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001169loopback_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v)
1170{
1171 GLint i;
1172 for (i = n - 1; i >= 0; i--)
1173 loopback_VertexAttrib2svNV(index + i, v + 2 * i);
1174}
1175
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001176static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001177loopback_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v)
1178{
1179 GLint i;
1180 for (i = n - 1; i >= 0; i--)
Brian Paulb5b8d222004-11-27 20:07:08 +00001181 ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]);
Brian Paul86b84272001-12-14 02:50:01 +00001182}
1183
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001184static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001185loopback_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v)
1186{
1187 GLint i;
1188 for (i = n - 1; i >= 0; i--)
1189 loopback_VertexAttrib2dvNV(index + i, v + 2 * i);
1190}
1191
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001192static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001193loopback_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v)
1194{
1195 GLint i;
1196 for (i = n - 1; i >= 0; i--)
1197 loopback_VertexAttrib3svNV(index + i, v + 3 * i);
1198}
1199
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001200static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001201loopback_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v)
1202{
1203 GLint i;
1204 for (i = n - 1; i >= 0; i--)
Brian Paulb5b8d222004-11-27 20:07:08 +00001205 ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]);
Brian Paul86b84272001-12-14 02:50:01 +00001206}
1207
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001208static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001209loopback_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v)
1210{
1211 GLint i;
1212 for (i = n - 1; i >= 0; i--)
1213 loopback_VertexAttrib3dvNV(index + i, v + 3 * i);
1214}
1215
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001216static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001217loopback_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v)
1218{
1219 GLint i;
1220 for (i = n - 1; i >= 0; i--)
1221 loopback_VertexAttrib4svNV(index + i, v + 4 * i);
1222}
1223
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001224static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001225loopback_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v)
1226{
1227 GLint i;
1228 for (i = n - 1; i >= 0; i--)
Brian Paulb5b8d222004-11-27 20:07:08 +00001229 ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]);
Brian Paul86b84272001-12-14 02:50:01 +00001230}
1231
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001232static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001233loopback_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v)
1234{
1235 GLint i;
1236 for (i = n - 1; i >= 0; i--)
1237 loopback_VertexAttrib4dvNV(index + i, v + 4 * i);
1238}
1239
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001240static void GLAPIENTRY
Brian Paul86b84272001-12-14 02:50:01 +00001241loopback_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v)
1242{
1243 GLint i;
1244 for (i = n - 1; i >= 0; i--)
1245 loopback_VertexAttrib4ubvNV(index + i, v + 4 * i);
1246}
1247
Keith Whitwellcab974c2000-12-26 05:09:27 +00001248
Brian Paule591ad72003-05-10 04:37:47 +00001249/*
1250 * GL_ARB_vertex_program
Brian Paulb5b8d222004-11-27 20:07:08 +00001251 * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions.
Brian Paule591ad72003-05-10 04:37:47 +00001252 */
1253
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001254static void GLAPIENTRY
Brian Paulb5b8d222004-11-27 20:07:08 +00001255loopback_VertexAttrib1sARB(GLuint index, GLshort x)
1256{
1257 ATTRIB1ARB(index, (GLfloat) x);
1258}
1259
1260static void GLAPIENTRY
1261loopback_VertexAttrib1dARB(GLuint index, GLdouble x)
1262{
1263 ATTRIB1ARB(index, (GLfloat) x);
1264}
1265
1266static void GLAPIENTRY
1267loopback_VertexAttrib2sARB(GLuint index, GLshort x, GLshort y)
1268{
1269 ATTRIB2ARB(index, (GLfloat) x, y);
1270}
1271
1272static void GLAPIENTRY
1273loopback_VertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y)
1274{
1275 ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y);
1276}
1277
1278static void GLAPIENTRY
1279loopback_VertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z)
1280{
1281 ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
1282}
1283
1284static void GLAPIENTRY
1285loopback_VertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z)
1286{
1287 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
1288}
1289
1290static void GLAPIENTRY
1291loopback_VertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
1292{
1293 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1294}
1295
1296static void GLAPIENTRY
1297loopback_VertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
1298{
1299 ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1300}
1301
1302static void GLAPIENTRY
1303loopback_VertexAttrib1svARB(GLuint index, const GLshort *v)
1304{
1305 ATTRIB1ARB(index, (GLfloat) v[0]);
1306}
1307
1308static void GLAPIENTRY
1309loopback_VertexAttrib1dvARB(GLuint index, const GLdouble *v)
1310{
1311 ATTRIB1ARB(index, (GLfloat) v[0]);
1312}
1313
1314static void GLAPIENTRY
1315loopback_VertexAttrib2svARB(GLuint index, const GLshort *v)
1316{
1317 ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
1318}
1319
1320static void GLAPIENTRY
1321loopback_VertexAttrib2dvARB(GLuint index, const GLdouble *v)
1322{
1323 ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
1324}
1325
1326static void GLAPIENTRY
1327loopback_VertexAttrib3svARB(GLuint index, const GLshort *v)
1328{
1329 ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1330}
1331
1332static void GLAPIENTRY
1333loopback_VertexAttrib3dvARB(GLuint index, const GLdouble *v)
1334{
1335 ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1336}
1337
1338static void GLAPIENTRY
1339loopback_VertexAttrib4svARB(GLuint index, const GLshort *v)
1340{
1341 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2],
1342 (GLfloat)v[3]);
1343}
1344
1345static void GLAPIENTRY
1346loopback_VertexAttrib4dvARB(GLuint index, const GLdouble *v)
1347{
1348 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1349}
1350
1351static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001352loopback_VertexAttrib4bvARB(GLuint index, const GLbyte * v)
1353{
Brian Paulb5b8d222004-11-27 20:07:08 +00001354 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paule591ad72003-05-10 04:37:47 +00001355}
1356
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001357static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001358loopback_VertexAttrib4ivARB(GLuint index, const GLint * v)
1359{
Brian Paulb5b8d222004-11-27 20:07:08 +00001360 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paule591ad72003-05-10 04:37:47 +00001361}
1362
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001363static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001364loopback_VertexAttrib4ubvARB(GLuint index, const GLubyte * v)
1365{
Brian Paulb5b8d222004-11-27 20:07:08 +00001366 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paule591ad72003-05-10 04:37:47 +00001367}
1368
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001369static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001370loopback_VertexAttrib4usvARB(GLuint index, const GLushort * v)
1371{
Brian Paulb5b8d222004-11-27 20:07:08 +00001372 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paule591ad72003-05-10 04:37:47 +00001373}
1374
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001375static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001376loopback_VertexAttrib4uivARB(GLuint index, const GLuint * v)
1377{
Brian Paulb5b8d222004-11-27 20:07:08 +00001378 ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
Brian Paule591ad72003-05-10 04:37:47 +00001379}
1380
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001381static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001382loopback_VertexAttrib4NbvARB(GLuint index, const GLbyte * v)
1383{
Brian Paulb5b8d222004-11-27 20:07:08 +00001384 ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
Brian Paule591ad72003-05-10 04:37:47 +00001385 BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
1386}
1387
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001388static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001389loopback_VertexAttrib4NsvARB(GLuint index, const GLshort * v)
1390{
Brian Paulb5b8d222004-11-27 20:07:08 +00001391 ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
Brian Paule591ad72003-05-10 04:37:47 +00001392 SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
1393}
1394
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001395static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001396loopback_VertexAttrib4NivARB(GLuint index, const GLint * v)
1397{
Brian Paulb5b8d222004-11-27 20:07:08 +00001398 ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
Brian Paule591ad72003-05-10 04:37:47 +00001399 INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
1400}
1401
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001402static void GLAPIENTRY
Brian Paulb5b8d222004-11-27 20:07:08 +00001403loopback_VertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
1404{
1405 ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
1406 UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
1407}
1408
1409static void GLAPIENTRY
1410loopback_VertexAttrib4NubvARB(GLuint index, const GLubyte * v)
1411{
1412 ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
1413 UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
1414}
1415
1416static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001417loopback_VertexAttrib4NusvARB(GLuint index, const GLushort * v)
1418{
Brian Paulb5b8d222004-11-27 20:07:08 +00001419 ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
Brian Paule591ad72003-05-10 04:37:47 +00001420 USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
1421}
1422
Kendall Bennettc40d1dd2003-10-21 22:22:17 +00001423static void GLAPIENTRY
Brian Paule591ad72003-05-10 04:37:47 +00001424loopback_VertexAttrib4NuivARB(GLuint index, const GLuint * v)
1425{
Brian Paulb5b8d222004-11-27 20:07:08 +00001426 ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
Brian Paule591ad72003-05-10 04:37:47 +00001427 UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
1428}
1429
1430
Brian Paul03c0c2e2002-01-14 16:06:35 +00001431
Keith Whitwellb0149862000-11-24 10:30:04 +00001432
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001433/*
Keith Whitwellb0149862000-11-24 10:30:04 +00001434 * This code never registers handlers for any of the entry points
Gareth Hughes22144ab2001-03-12 00:48:37 +00001435 * listed in vtxfmt.h.
Keith Whitwellb0149862000-11-24 10:30:04 +00001436 */
1437void
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001438_mesa_loopback_init_api_table( struct _glapi_table *dest )
Keith Whitwellb0149862000-11-24 10:30:04 +00001439{
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001440 dest->Color3b = loopback_Color3b_f;
1441 dest->Color3d = loopback_Color3d_f;
1442 dest->Color3i = loopback_Color3i_f;
1443 dest->Color3s = loopback_Color3s_f;
1444 dest->Color3ui = loopback_Color3ui_f;
1445 dest->Color3us = loopback_Color3us_f;
1446 dest->Color3ub = loopback_Color3ub_f;
1447 dest->Color4b = loopback_Color4b_f;
1448 dest->Color4d = loopback_Color4d_f;
1449 dest->Color4i = loopback_Color4i_f;
1450 dest->Color4s = loopback_Color4s_f;
1451 dest->Color4ui = loopback_Color4ui_f;
1452 dest->Color4us = loopback_Color4us_f;
1453 dest->Color4ub = loopback_Color4ub_f;
1454 dest->Color3bv = loopback_Color3bv_f;
1455 dest->Color3dv = loopback_Color3dv_f;
1456 dest->Color3iv = loopback_Color3iv_f;
1457 dest->Color3sv = loopback_Color3sv_f;
1458 dest->Color3uiv = loopback_Color3uiv_f;
1459 dest->Color3usv = loopback_Color3usv_f;
1460 dest->Color3ubv = loopback_Color3ubv_f;
1461 dest->Color4bv = loopback_Color4bv_f;
1462 dest->Color4dv = loopback_Color4dv_f;
1463 dest->Color4iv = loopback_Color4iv_f;
1464 dest->Color4sv = loopback_Color4sv_f;
1465 dest->Color4uiv = loopback_Color4uiv_f;
1466 dest->Color4usv = loopback_Color4usv_f;
1467 dest->Color4ubv = loopback_Color4ubv_f;
Keith Whitwellb0149862000-11-24 10:30:04 +00001468
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001469 dest->SecondaryColor3bEXT = loopback_SecondaryColor3bEXT_f;
1470 dest->SecondaryColor3dEXT = loopback_SecondaryColor3dEXT_f;
1471 dest->SecondaryColor3iEXT = loopback_SecondaryColor3iEXT_f;
1472 dest->SecondaryColor3sEXT = loopback_SecondaryColor3sEXT_f;
1473 dest->SecondaryColor3uiEXT = loopback_SecondaryColor3uiEXT_f;
1474 dest->SecondaryColor3usEXT = loopback_SecondaryColor3usEXT_f;
1475 dest->SecondaryColor3ubEXT = loopback_SecondaryColor3ubEXT_f;
1476 dest->SecondaryColor3bvEXT = loopback_SecondaryColor3bvEXT_f;
1477 dest->SecondaryColor3dvEXT = loopback_SecondaryColor3dvEXT_f;
1478 dest->SecondaryColor3ivEXT = loopback_SecondaryColor3ivEXT_f;
1479 dest->SecondaryColor3svEXT = loopback_SecondaryColor3svEXT_f;
1480 dest->SecondaryColor3uivEXT = loopback_SecondaryColor3uivEXT_f;
1481 dest->SecondaryColor3usvEXT = loopback_SecondaryColor3usvEXT_f;
1482 dest->SecondaryColor3ubvEXT = loopback_SecondaryColor3ubvEXT_f;
1483
Keith Whitwellb0149862000-11-24 10:30:04 +00001484 dest->Indexd = loopback_Indexd;
Keith Whitwellae0eaf92003-11-24 15:23:18 +00001485 dest->Indexi = loopback_Indexi;
Keith Whitwellb0149862000-11-24 10:30:04 +00001486 dest->Indexs = loopback_Indexs;
1487 dest->Indexub = loopback_Indexub;
1488 dest->Indexdv = loopback_Indexdv;
Keith Whitwellb0149862000-11-24 10:30:04 +00001489 dest->Indexiv = loopback_Indexiv;
1490 dest->Indexsv = loopback_Indexsv;
1491 dest->Indexubv = loopback_Indexubv;
1492 dest->Normal3b = loopback_Normal3b;
1493 dest->Normal3d = loopback_Normal3d;
1494 dest->Normal3i = loopback_Normal3i;
1495 dest->Normal3s = loopback_Normal3s;
1496 dest->Normal3bv = loopback_Normal3bv;
1497 dest->Normal3dv = loopback_Normal3dv;
1498 dest->Normal3iv = loopback_Normal3iv;
1499 dest->Normal3sv = loopback_Normal3sv;
1500 dest->TexCoord1d = loopback_TexCoord1d;
1501 dest->TexCoord1i = loopback_TexCoord1i;
1502 dest->TexCoord1s = loopback_TexCoord1s;
1503 dest->TexCoord2d = loopback_TexCoord2d;
1504 dest->TexCoord2s = loopback_TexCoord2s;
1505 dest->TexCoord2i = loopback_TexCoord2i;
1506 dest->TexCoord3d = loopback_TexCoord3d;
1507 dest->TexCoord3i = loopback_TexCoord3i;
1508 dest->TexCoord3s = loopback_TexCoord3s;
1509 dest->TexCoord4d = loopback_TexCoord4d;
1510 dest->TexCoord4i = loopback_TexCoord4i;
1511 dest->TexCoord4s = loopback_TexCoord4s;
1512 dest->TexCoord1dv = loopback_TexCoord1dv;
1513 dest->TexCoord1iv = loopback_TexCoord1iv;
1514 dest->TexCoord1sv = loopback_TexCoord1sv;
1515 dest->TexCoord2dv = loopback_TexCoord2dv;
1516 dest->TexCoord2iv = loopback_TexCoord2iv;
1517 dest->TexCoord2sv = loopback_TexCoord2sv;
1518 dest->TexCoord3dv = loopback_TexCoord3dv;
1519 dest->TexCoord3iv = loopback_TexCoord3iv;
1520 dest->TexCoord3sv = loopback_TexCoord3sv;
1521 dest->TexCoord4dv = loopback_TexCoord4dv;
1522 dest->TexCoord4iv = loopback_TexCoord4iv;
1523 dest->TexCoord4sv = loopback_TexCoord4sv;
1524 dest->Vertex2d = loopback_Vertex2d;
1525 dest->Vertex2i = loopback_Vertex2i;
1526 dest->Vertex2s = loopback_Vertex2s;
1527 dest->Vertex3d = loopback_Vertex3d;
1528 dest->Vertex3i = loopback_Vertex3i;
1529 dest->Vertex3s = loopback_Vertex3s;
1530 dest->Vertex4d = loopback_Vertex4d;
1531 dest->Vertex4i = loopback_Vertex4i;
1532 dest->Vertex4s = loopback_Vertex4s;
1533 dest->Vertex2dv = loopback_Vertex2dv;
1534 dest->Vertex2iv = loopback_Vertex2iv;
1535 dest->Vertex2sv = loopback_Vertex2sv;
1536 dest->Vertex3dv = loopback_Vertex3dv;
1537 dest->Vertex3iv = loopback_Vertex3iv;
1538 dest->Vertex3sv = loopback_Vertex3sv;
1539 dest->Vertex4dv = loopback_Vertex4dv;
1540 dest->Vertex4iv = loopback_Vertex4iv;
1541 dest->Vertex4sv = loopback_Vertex4sv;
Brian Paul471a7742001-12-04 23:43:31 +00001542 dest->MultiTexCoord1dARB = loopback_MultiTexCoord1dARB;
1543 dest->MultiTexCoord1dvARB = loopback_MultiTexCoord1dvARB;
1544 dest->MultiTexCoord1iARB = loopback_MultiTexCoord1iARB;
1545 dest->MultiTexCoord1ivARB = loopback_MultiTexCoord1ivARB;
1546 dest->MultiTexCoord1sARB = loopback_MultiTexCoord1sARB;
1547 dest->MultiTexCoord1svARB = loopback_MultiTexCoord1svARB;
1548 dest->MultiTexCoord2dARB = loopback_MultiTexCoord2dARB;
1549 dest->MultiTexCoord2dvARB = loopback_MultiTexCoord2dvARB;
1550 dest->MultiTexCoord2iARB = loopback_MultiTexCoord2iARB;
1551 dest->MultiTexCoord2ivARB = loopback_MultiTexCoord2ivARB;
1552 dest->MultiTexCoord2sARB = loopback_MultiTexCoord2sARB;
1553 dest->MultiTexCoord2svARB = loopback_MultiTexCoord2svARB;
1554 dest->MultiTexCoord3dARB = loopback_MultiTexCoord3dARB;
1555 dest->MultiTexCoord3dvARB = loopback_MultiTexCoord3dvARB;
1556 dest->MultiTexCoord3iARB = loopback_MultiTexCoord3iARB;
1557 dest->MultiTexCoord3ivARB = loopback_MultiTexCoord3ivARB;
1558 dest->MultiTexCoord3sARB = loopback_MultiTexCoord3sARB;
1559 dest->MultiTexCoord3svARB = loopback_MultiTexCoord3svARB;
1560 dest->MultiTexCoord4dARB = loopback_MultiTexCoord4dARB;
1561 dest->MultiTexCoord4dvARB = loopback_MultiTexCoord4dvARB;
1562 dest->MultiTexCoord4iARB = loopback_MultiTexCoord4iARB;
1563 dest->MultiTexCoord4ivARB = loopback_MultiTexCoord4ivARB;
1564 dest->MultiTexCoord4sARB = loopback_MultiTexCoord4sARB;
1565 dest->MultiTexCoord4svARB = loopback_MultiTexCoord4svARB;
Keith Whitwellb0149862000-11-24 10:30:04 +00001566 dest->EvalCoord2dv = loopback_EvalCoord2dv;
1567 dest->EvalCoord2fv = loopback_EvalCoord2fv;
1568 dest->EvalCoord2d = loopback_EvalCoord2d;
1569 dest->EvalCoord1dv = loopback_EvalCoord1dv;
1570 dest->EvalCoord1fv = loopback_EvalCoord1fv;
1571 dest->EvalCoord1d = loopback_EvalCoord1d;
1572 dest->Materialf = loopback_Materialf;
1573 dest->Materiali = loopback_Materiali;
1574 dest->Materialiv = loopback_Materialiv;
1575 dest->Rectd = loopback_Rectd;
1576 dest->Rectdv = loopback_Rectdv;
1577 dest->Rectfv = loopback_Rectfv;
1578 dest->Recti = loopback_Recti;
1579 dest->Rectiv = loopback_Rectiv;
1580 dest->Rects = loopback_Rects;
1581 dest->Rectsv = loopback_Rectsv;
1582 dest->FogCoorddEXT = loopback_FogCoorddEXT;
1583 dest->FogCoorddvEXT = loopback_FogCoorddvEXT;
Brian Paul86b84272001-12-14 02:50:01 +00001584
1585 dest->VertexAttrib1sNV = loopback_VertexAttrib1sNV;
Brian Paul86b84272001-12-14 02:50:01 +00001586 dest->VertexAttrib1dNV = loopback_VertexAttrib1dNV;
1587 dest->VertexAttrib2sNV = loopback_VertexAttrib2sNV;
Brian Paul86b84272001-12-14 02:50:01 +00001588 dest->VertexAttrib2dNV = loopback_VertexAttrib2dNV;
1589 dest->VertexAttrib3sNV = loopback_VertexAttrib3sNV;
Brian Paul86b84272001-12-14 02:50:01 +00001590 dest->VertexAttrib3dNV = loopback_VertexAttrib3dNV;
1591 dest->VertexAttrib4sNV = loopback_VertexAttrib4sNV;
1592 dest->VertexAttrib4dNV = loopback_VertexAttrib4dNV;
1593 dest->VertexAttrib4ubNV = loopback_VertexAttrib4ubNV;
Brian Paul86b84272001-12-14 02:50:01 +00001594 dest->VertexAttrib1svNV = loopback_VertexAttrib1svNV;
Brian Paul86b84272001-12-14 02:50:01 +00001595 dest->VertexAttrib1dvNV = loopback_VertexAttrib1dvNV;
1596 dest->VertexAttrib2svNV = loopback_VertexAttrib2svNV;
Brian Paul86b84272001-12-14 02:50:01 +00001597 dest->VertexAttrib2dvNV = loopback_VertexAttrib2dvNV;
1598 dest->VertexAttrib3svNV = loopback_VertexAttrib3svNV;
Brian Paul86b84272001-12-14 02:50:01 +00001599 dest->VertexAttrib3dvNV = loopback_VertexAttrib3dvNV;
1600 dest->VertexAttrib4svNV = loopback_VertexAttrib4svNV;
Brian Paul86b84272001-12-14 02:50:01 +00001601 dest->VertexAttrib4dvNV = loopback_VertexAttrib4dvNV;
1602 dest->VertexAttrib4ubvNV = loopback_VertexAttrib4ubvNV;
Brian Paul86b84272001-12-14 02:50:01 +00001603 dest->VertexAttribs1svNV = loopback_VertexAttribs1svNV;
1604 dest->VertexAttribs1fvNV = loopback_VertexAttribs1fvNV;
1605 dest->VertexAttribs1dvNV = loopback_VertexAttribs1dvNV;
1606 dest->VertexAttribs2svNV = loopback_VertexAttribs2svNV;
1607 dest->VertexAttribs2fvNV = loopback_VertexAttribs2fvNV;
1608 dest->VertexAttribs2dvNV = loopback_VertexAttribs2dvNV;
1609 dest->VertexAttribs3svNV = loopback_VertexAttribs3svNV;
1610 dest->VertexAttribs3fvNV = loopback_VertexAttribs3fvNV;
1611 dest->VertexAttribs3dvNV = loopback_VertexAttribs3dvNV;
1612 dest->VertexAttribs4svNV = loopback_VertexAttribs4svNV;
1613 dest->VertexAttribs4fvNV = loopback_VertexAttribs4fvNV;
1614 dest->VertexAttribs4dvNV = loopback_VertexAttribs4dvNV;
1615 dest->VertexAttribs4ubvNV = loopback_VertexAttribs4ubvNV;
Brian Paul03c0c2e2002-01-14 16:06:35 +00001616
Brian Paulb5b8d222004-11-27 20:07:08 +00001617 dest->VertexAttrib1sARB = loopback_VertexAttrib1sARB;
1618 dest->VertexAttrib1dARB = loopback_VertexAttrib1dARB;
1619 dest->VertexAttrib2sARB = loopback_VertexAttrib2sARB;
1620 dest->VertexAttrib2dARB = loopback_VertexAttrib2dARB;
1621 dest->VertexAttrib3sARB = loopback_VertexAttrib3sARB;
1622 dest->VertexAttrib3dARB = loopback_VertexAttrib3dARB;
1623 dest->VertexAttrib4sARB = loopback_VertexAttrib4sARB;
1624 dest->VertexAttrib4dARB = loopback_VertexAttrib4dARB;
1625 dest->VertexAttrib1svARB = loopback_VertexAttrib1svARB;
1626 dest->VertexAttrib1dvARB = loopback_VertexAttrib1dvARB;
1627 dest->VertexAttrib2svARB = loopback_VertexAttrib2svARB;
1628 dest->VertexAttrib2dvARB = loopback_VertexAttrib2dvARB;
1629 dest->VertexAttrib3svARB = loopback_VertexAttrib3svARB;
1630 dest->VertexAttrib3dvARB = loopback_VertexAttrib3dvARB;
1631 dest->VertexAttrib4svARB = loopback_VertexAttrib4svARB;
1632 dest->VertexAttrib4dvARB = loopback_VertexAttrib4dvARB;
1633 dest->VertexAttrib4NubARB = loopback_VertexAttrib4NubARB;
1634 dest->VertexAttrib4NubvARB = loopback_VertexAttrib4NubvARB;
Brian Paule591ad72003-05-10 04:37:47 +00001635 dest->VertexAttrib4bvARB = loopback_VertexAttrib4bvARB;
1636 dest->VertexAttrib4ivARB = loopback_VertexAttrib4ivARB;
1637 dest->VertexAttrib4ubvARB = loopback_VertexAttrib4ubvARB;
1638 dest->VertexAttrib4usvARB = loopback_VertexAttrib4usvARB;
1639 dest->VertexAttrib4uivARB = loopback_VertexAttrib4uivARB;
1640 dest->VertexAttrib4NbvARB = loopback_VertexAttrib4NbvARB;
1641 dest->VertexAttrib4NsvARB = loopback_VertexAttrib4NsvARB;
1642 dest->VertexAttrib4NivARB = loopback_VertexAttrib4NivARB;
1643 dest->VertexAttrib4NusvARB = loopback_VertexAttrib4NusvARB;
1644 dest->VertexAttrib4NuivARB = loopback_VertexAttrib4NuivARB;
Keith Whitwellb0149862000-11-24 10:30:04 +00001645}