Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4358 Serge 1
/**
2
 * \file api_loopback.c
3
 *
4
 * \author Keith Whitwell 
5
 */
6
 
7
/*
8
 * Mesa 3-D graphics library
9
 *
10
 * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
11
 *
12
 * Permission is hereby granted, free of charge, to any person obtaining a
13
 * copy of this software and associated documentation files (the "Software"),
14
 * to deal in the Software without restriction, including without limitation
15
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16
 * and/or sell copies of the Software, and to permit persons to whom the
17
 * Software is furnished to do so, subject to the following conditions:
18
 *
19
 * The above copyright notice and this permission notice shall be included
20
 * in all copies or substantial portions of the Software.
21
 *
22
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
25
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
26
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
27
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
28
 * OTHER DEALINGS IN THE SOFTWARE.
29
 */
30
 
31
 
32
#include "glheader.h"
33
#include "macros.h"
34
#include "api_loopback.h"
35
#include "mtypes.h"
36
#include "glapi/glapi.h"
37
#include "glapi/glthread.h"
38
#include "main/dispatch.h"
39
#include "main/context.h"
40
 
41
/* KW: A set of functions to convert unusual Color/Normal/Vertex/etc
42
 * calls to a smaller set of driver-provided formats.  Currently just
43
 * go back to dispatch to find these (eg. call glNormal3f directly),
44
 * hence 'loopback'.
45
 *
46
 * The driver must supply all of the remaining entry points, which are
47
 * listed in dd.h.  The easiest way for a driver to do this is to
48
 * install the supplied software t&l module.
49
 */
50
#define COLORF(r,g,b,a)             CALL_Color4f(GET_DISPATCH(), (r,g,b,a))
51
#define VERTEX2(x,y)	            CALL_Vertex2f(GET_DISPATCH(), (x,y))
52
#define VERTEX3(x,y,z)	            CALL_Vertex3f(GET_DISPATCH(), (x,y,z))
53
#define VERTEX4(x,y,z,w)            CALL_Vertex4f(GET_DISPATCH(), (x,y,z,w))
54
#define NORMAL(x,y,z)               CALL_Normal3f(GET_DISPATCH(), (x,y,z))
55
#define TEXCOORD1(s)                CALL_TexCoord1f(GET_DISPATCH(), (s))
56
#define TEXCOORD2(s,t)              CALL_TexCoord2f(GET_DISPATCH(), (s,t))
57
#define TEXCOORD3(s,t,u)            CALL_TexCoord3f(GET_DISPATCH(), (s,t,u))
58
#define TEXCOORD4(s,t,u,v)          CALL_TexCoord4f(GET_DISPATCH(), (s,t,u,v))
59
#define INDEX(c)		    CALL_Indexf(GET_DISPATCH(), (c))
60
#define MULTI_TEXCOORD1(z,s)	    CALL_MultiTexCoord1fARB(GET_DISPATCH(), (z,s))
61
#define MULTI_TEXCOORD2(z,s,t)	    CALL_MultiTexCoord2fARB(GET_DISPATCH(), (z,s,t))
62
#define MULTI_TEXCOORD3(z,s,t,u)    CALL_MultiTexCoord3fARB(GET_DISPATCH(), (z,s,t,u))
63
#define MULTI_TEXCOORD4(z,s,t,u,v)  CALL_MultiTexCoord4fARB(GET_DISPATCH(), (z,s,t,u,v))
64
#define EVALCOORD1(x)               CALL_EvalCoord1f(GET_DISPATCH(), (x))
65
#define EVALCOORD2(x,y)             CALL_EvalCoord2f(GET_DISPATCH(), (x,y))
66
#define MATERIALFV(a,b,c)           CALL_Materialfv(GET_DISPATCH(), (a,b,c))
67
#define RECTF(a,b,c,d)              CALL_Rectf(GET_DISPATCH(), (a,b,c,d))
68
 
69
#define FOGCOORDF(x)                CALL_FogCoordfEXT(GET_DISPATCH(), (x))
70
#define SECONDARYCOLORF(a,b,c)      CALL_SecondaryColor3fEXT(GET_DISPATCH(), (a,b,c))
71
 
72
#define ATTRIB1NV(index,x)          CALL_VertexAttrib1fNV(GET_DISPATCH(), (index,x))
73
#define ATTRIB2NV(index,x,y)        CALL_VertexAttrib2fNV(GET_DISPATCH(), (index,x,y))
74
#define ATTRIB3NV(index,x,y,z)      CALL_VertexAttrib3fNV(GET_DISPATCH(), (index,x,y,z))
75
#define ATTRIB4NV(index,x,y,z,w)    CALL_VertexAttrib4fNV(GET_DISPATCH(), (index,x,y,z,w))
76
 
77
#define ATTRIB1ARB(index,x)         CALL_VertexAttrib1fARB(GET_DISPATCH(), (index,x))
78
#define ATTRIB2ARB(index,x,y)       CALL_VertexAttrib2fARB(GET_DISPATCH(), (index,x,y))
79
#define ATTRIB3ARB(index,x,y,z)     CALL_VertexAttrib3fARB(GET_DISPATCH(), (index,x,y,z))
80
#define ATTRIB4ARB(index,x,y,z,w)   CALL_VertexAttrib4fARB(GET_DISPATCH(), (index,x,y,z,w))
81
 
82
#define ATTRIBI_1I(index,x)   CALL_VertexAttribI1iEXT(GET_DISPATCH(), (index,x))
83
#define ATTRIBI_1UI(index,x)   CALL_VertexAttribI1uiEXT(GET_DISPATCH(), (index,x))
84
#define ATTRIBI_4I(index,x,y,z,w)   CALL_VertexAttribI4iEXT(GET_DISPATCH(), (index,x,y,z,w))
85
 
86
#define ATTRIBI_4UI(index,x,y,z,w)   CALL_VertexAttribI4uiEXT(GET_DISPATCH(), (index,x,y,z,w))
87
 
88
 
89
void GLAPIENTRY
90
_mesa_Color3b( GLbyte red, GLbyte green, GLbyte blue )
91
{
92
   COLORF( BYTE_TO_FLOAT(red),
93
	   BYTE_TO_FLOAT(green),
94
	   BYTE_TO_FLOAT(blue),
95
	   1.0 );
96
}
97
 
98
void GLAPIENTRY
99
_mesa_Color3d( GLdouble red, GLdouble green, GLdouble blue )
100
{
101
   COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 );
102
}
103
 
104
void GLAPIENTRY
105
_mesa_Color3i( GLint red, GLint green, GLint blue )
106
{
107
   COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
108
	   INT_TO_FLOAT(blue), 1.0);
109
}
110
 
111
void GLAPIENTRY
112
_mesa_Color3s( GLshort red, GLshort green, GLshort blue )
113
{
114
   COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
115
	   SHORT_TO_FLOAT(blue), 1.0);
116
}
117
 
118
void GLAPIENTRY
119
_mesa_Color3ui( GLuint red, GLuint green, GLuint blue )
120
{
121
   COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
122
	   UINT_TO_FLOAT(blue), 1.0 );
123
}
124
 
125
void GLAPIENTRY
126
_mesa_Color3us( GLushort red, GLushort green, GLushort blue )
127
{
128
   COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
129
	   USHORT_TO_FLOAT(blue), 1.0 );
130
}
131
 
132
void GLAPIENTRY
133
_mesa_Color3ub( GLubyte red, GLubyte green, GLubyte blue )
134
{
135
   COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
136
	   UBYTE_TO_FLOAT(blue), 1.0 );
137
}
138
 
139
 
140
void GLAPIENTRY
141
_mesa_Color3bv( const GLbyte *v )
142
{
143
   COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
144
	   BYTE_TO_FLOAT(v[2]), 1.0 );
145
}
146
 
147
void GLAPIENTRY
148
_mesa_Color3dv( const GLdouble *v )
149
{
150
   COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 );
151
}
152
 
153
void GLAPIENTRY
154
_mesa_Color3iv( const GLint *v )
155
{
156
   COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
157
	   INT_TO_FLOAT(v[2]), 1.0 );
158
}
159
 
160
void GLAPIENTRY
161
_mesa_Color3sv( const GLshort *v )
162
{
163
   COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
164
	   SHORT_TO_FLOAT(v[2]), 1.0 );
165
}
166
 
167
void GLAPIENTRY
168
_mesa_Color3uiv( const GLuint *v )
169
{
170
   COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
171
	   UINT_TO_FLOAT(v[2]), 1.0 );
172
}
173
 
174
void GLAPIENTRY
175
_mesa_Color3usv( const GLushort *v )
176
{
177
   COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
178
	   USHORT_TO_FLOAT(v[2]), 1.0 );
179
}
180
 
181
void GLAPIENTRY
182
_mesa_Color3ubv( const GLubyte *v )
183
{
184
   COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
185
	   UBYTE_TO_FLOAT(v[2]), 1.0 );
186
}
187
 
188
 
189
void GLAPIENTRY
190
_mesa_Color4b( GLbyte red, GLbyte green, GLbyte blue,
191
			      GLbyte alpha )
192
{
193
   COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green),
194
	   BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) );
195
}
196
 
197
void GLAPIENTRY
198
_mesa_Color4d( GLdouble red, GLdouble green, GLdouble blue,
199
			      GLdouble alpha )
200
{
201
   COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha );
202
}
203
 
204
void GLAPIENTRY
205
_mesa_Color4i( GLint red, GLint green, GLint blue, GLint alpha )
206
{
207
   COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green),
208
	   INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) );
209
}
210
 
211
void GLAPIENTRY
212
_mesa_Color4s( GLshort red, GLshort green, GLshort blue,
213
			      GLshort alpha )
214
{
215
   COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green),
216
	   SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) );
217
}
218
 
219
void GLAPIENTRY
220
_mesa_Color4ui( GLuint red, GLuint green, GLuint blue, GLuint alpha )
221
{
222
   COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green),
223
	   UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) );
224
}
225
 
226
void GLAPIENTRY
227
_mesa_Color4us( GLushort red, GLushort green, GLushort blue, GLushort alpha )
228
{
229
   COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green),
230
	   USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) );
231
}
232
 
233
void GLAPIENTRY
234
_mesa_Color4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha )
235
{
236
   COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green),
237
	   UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) );
238
}
239
 
240
 
241
void GLAPIENTRY
242
_mesa_Color4iv( const GLint *v )
243
{
244
   COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
245
	   INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) );
246
}
247
 
248
 
249
void GLAPIENTRY
250
_mesa_Color4bv( const GLbyte *v )
251
{
252
   COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
253
	   BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) );
254
}
255
 
256
void GLAPIENTRY
257
_mesa_Color4dv( const GLdouble *v )
258
{
259
   COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] );
260
}
261
 
262
 
263
void GLAPIENTRY
264
_mesa_Color4sv( const GLshort *v)
265
{
266
   COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
267
	   SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) );
268
}
269
 
270
 
271
void GLAPIENTRY
272
_mesa_Color4uiv( const GLuint *v)
273
{
274
   COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
275
	   UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) );
276
}
277
 
278
void GLAPIENTRY
279
_mesa_Color4usv( const GLushort *v)
280
{
281
   COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
282
	   USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) );
283
}
284
 
285
void GLAPIENTRY
286
_mesa_Color4ubv( const GLubyte *v)
287
{
288
   COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
289
	   UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) );
290
}
291
 
292
 
293
void GLAPIENTRY
294
_mesa_FogCoordd( GLdouble d )
295
{
296
   FOGCOORDF( (GLfloat) d );
297
}
298
 
299
void GLAPIENTRY
300
_mesa_FogCoorddv( const GLdouble *v )
301
{
302
   FOGCOORDF( (GLfloat) *v );
303
}
304
 
305
 
306
void GLAPIENTRY
307
_mesa_Indexd( GLdouble c )
308
{
309
   INDEX( (GLfloat) c );
310
}
311
 
312
void GLAPIENTRY
313
_mesa_Indexi( GLint c )
314
{
315
   INDEX( (GLfloat) c );
316
}
317
 
318
void GLAPIENTRY
319
_mesa_Indexs( GLshort c )
320
{
321
   INDEX( (GLfloat) c );
322
}
323
 
324
void GLAPIENTRY
325
_mesa_Indexub( GLubyte c )
326
{
327
   INDEX( (GLfloat) c );
328
}
329
 
330
void GLAPIENTRY
331
_mesa_Indexdv( const GLdouble *c )
332
{
333
   INDEX( (GLfloat) *c );
334
}
335
 
336
void GLAPIENTRY
337
_mesa_Indexiv( const GLint *c )
338
{
339
   INDEX( (GLfloat) *c );
340
}
341
 
342
void GLAPIENTRY
343
_mesa_Indexsv( const GLshort *c )
344
{
345
   INDEX( (GLfloat) *c );
346
}
347
 
348
void GLAPIENTRY
349
_mesa_Indexubv( const GLubyte *c )
350
{
351
   INDEX( (GLfloat) *c );
352
}
353
 
354
 
355
void GLAPIENTRY
356
_mesa_EdgeFlagv(const GLboolean *flag)
357
{
358
   CALL_EdgeFlag(GET_DISPATCH(), (*flag));
359
}
360
 
361
 
362
void GLAPIENTRY
363
_mesa_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz )
364
{
365
   NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) );
366
}
367
 
368
void GLAPIENTRY
369
_mesa_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz )
370
{
371
   NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz);
372
}
373
 
374
void GLAPIENTRY
375
_mesa_Normal3i( GLint nx, GLint ny, GLint nz )
376
{
377
   NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) );
378
}
379
 
380
void GLAPIENTRY
381
_mesa_Normal3s( GLshort nx, GLshort ny, GLshort nz )
382
{
383
   NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) );
384
}
385
 
386
void GLAPIENTRY
387
_mesa_Normal3bv( const GLbyte *v )
388
{
389
   NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) );
390
}
391
 
392
void GLAPIENTRY
393
_mesa_Normal3dv( const GLdouble *v )
394
{
395
   NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
396
}
397
 
398
void GLAPIENTRY
399
_mesa_Normal3iv( const GLint *v )
400
{
401
   NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) );
402
}
403
 
404
void GLAPIENTRY
405
_mesa_Normal3sv( const GLshort *v )
406
{
407
   NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) );
408
}
409
 
410
void GLAPIENTRY
411
_mesa_TexCoord1d( GLdouble s )
412
{
413
   TEXCOORD1((GLfloat) s);
414
}
415
 
416
void GLAPIENTRY
417
_mesa_TexCoord1i( GLint s )
418
{
419
   TEXCOORD1((GLfloat) s);
420
}
421
 
422
void GLAPIENTRY
423
_mesa_TexCoord1s( GLshort s )
424
{
425
   TEXCOORD1((GLfloat) s);
426
}
427
 
428
void GLAPIENTRY
429
_mesa_TexCoord2d( GLdouble s, GLdouble t )
430
{
431
   TEXCOORD2((GLfloat) s,(GLfloat) t);
432
}
433
 
434
void GLAPIENTRY
435
_mesa_TexCoord2s( GLshort s, GLshort t )
436
{
437
   TEXCOORD2((GLfloat) s,(GLfloat) t);
438
}
439
 
440
void GLAPIENTRY
441
_mesa_TexCoord2i( GLint s, GLint t )
442
{
443
   TEXCOORD2((GLfloat) s,(GLfloat) t);
444
}
445
 
446
void GLAPIENTRY
447
_mesa_TexCoord3d( GLdouble s, GLdouble t, GLdouble r )
448
{
449
   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
450
}
451
 
452
void GLAPIENTRY
453
_mesa_TexCoord3i( GLint s, GLint t, GLint r )
454
{
455
   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
456
}
457
 
458
void GLAPIENTRY
459
_mesa_TexCoord3s( GLshort s, GLshort t, GLshort r )
460
{
461
   TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r);
462
}
463
 
464
void GLAPIENTRY
465
_mesa_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q )
466
{
467
   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
468
}
469
 
470
void GLAPIENTRY
471
_mesa_TexCoord4i( GLint s, GLint t, GLint r, GLint q )
472
{
473
   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
474
}
475
 
476
void GLAPIENTRY
477
_mesa_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q )
478
{
479
   TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q);
480
}
481
 
482
void GLAPIENTRY
483
_mesa_TexCoord1dv( const GLdouble *v )
484
{
485
   TEXCOORD1((GLfloat) v[0]);
486
}
487
 
488
void GLAPIENTRY
489
_mesa_TexCoord1iv( const GLint *v )
490
{
491
   TEXCOORD1((GLfloat) v[0]);
492
}
493
 
494
void GLAPIENTRY
495
_mesa_TexCoord1sv( const GLshort *v )
496
{
497
   TEXCOORD1((GLfloat) v[0]);
498
}
499
 
500
void GLAPIENTRY
501
_mesa_TexCoord2dv( const GLdouble *v )
502
{
503
   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
504
}
505
 
506
void GLAPIENTRY
507
_mesa_TexCoord2iv( const GLint *v )
508
{
509
   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
510
}
511
 
512
void GLAPIENTRY
513
_mesa_TexCoord2sv( const GLshort *v )
514
{
515
   TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]);
516
}
517
 
518
void GLAPIENTRY
519
_mesa_TexCoord3dv( const GLdouble *v )
520
{
521
   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
522
}
523
 
524
void GLAPIENTRY
525
_mesa_TexCoord3iv( const GLint *v )
526
{
527
   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
528
}
529
 
530
void GLAPIENTRY
531
_mesa_TexCoord3sv( const GLshort *v )
532
{
533
   TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]);
534
}
535
 
536
void GLAPIENTRY
537
_mesa_TexCoord4dv( const GLdouble *v )
538
{
539
   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
540
}
541
 
542
void GLAPIENTRY
543
_mesa_TexCoord4iv( const GLint *v )
544
{
545
   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
546
}
547
 
548
void GLAPIENTRY
549
_mesa_TexCoord4sv( const GLshort *v )
550
{
551
   TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]);
552
}
553
 
554
void GLAPIENTRY
555
_mesa_Vertex2d( GLdouble x, GLdouble y )
556
{
557
   VERTEX2( (GLfloat) x, (GLfloat) y );
558
}
559
 
560
void GLAPIENTRY
561
_mesa_Vertex2i( GLint x, GLint y )
562
{
563
   VERTEX2( (GLfloat) x, (GLfloat) y );
564
}
565
 
566
void GLAPIENTRY
567
_mesa_Vertex2s( GLshort x, GLshort y )
568
{
569
   VERTEX2( (GLfloat) x, (GLfloat) y );
570
}
571
 
572
void GLAPIENTRY
573
_mesa_Vertex3d( GLdouble x, GLdouble y, GLdouble z )
574
{
575
   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
576
}
577
 
578
void GLAPIENTRY
579
_mesa_Vertex3i( GLint x, GLint y, GLint z )
580
{
581
   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
582
}
583
 
584
void GLAPIENTRY
585
_mesa_Vertex3s( GLshort x, GLshort y, GLshort z )
586
{
587
   VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z );
588
}
589
 
590
void GLAPIENTRY
591
_mesa_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w )
592
{
593
   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
594
}
595
 
596
void GLAPIENTRY
597
_mesa_Vertex4i( GLint x, GLint y, GLint z, GLint w )
598
{
599
   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
600
}
601
 
602
void GLAPIENTRY
603
_mesa_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w )
604
{
605
   VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w );
606
}
607
 
608
void GLAPIENTRY
609
_mesa_Vertex2dv( const GLdouble *v )
610
{
611
   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
612
}
613
 
614
void GLAPIENTRY
615
_mesa_Vertex2iv( const GLint *v )
616
{
617
   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
618
}
619
 
620
void GLAPIENTRY
621
_mesa_Vertex2sv( const GLshort *v )
622
{
623
   VERTEX2( (GLfloat) v[0], (GLfloat) v[1] );
624
}
625
 
626
void GLAPIENTRY
627
_mesa_Vertex3dv( const GLdouble *v )
628
{
629
   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
630
}
631
 
632
void GLAPIENTRY
633
_mesa_Vertex3iv( const GLint *v )
634
{
635
   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
636
}
637
 
638
void GLAPIENTRY
639
_mesa_Vertex3sv( const GLshort *v )
640
{
641
   VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
642
}
643
 
644
void GLAPIENTRY
645
_mesa_Vertex4dv( const GLdouble *v )
646
{
647
   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
648
	    (GLfloat) v[2], (GLfloat) v[3] );
649
}
650
 
651
void GLAPIENTRY
652
_mesa_Vertex4iv( const GLint *v )
653
{
654
   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
655
	    (GLfloat) v[2], (GLfloat) v[3] );
656
}
657
 
658
void GLAPIENTRY
659
_mesa_Vertex4sv( const GLshort *v )
660
{
661
   VERTEX4( (GLfloat) v[0], (GLfloat) v[1],
662
	    (GLfloat) v[2], (GLfloat) v[3] );
663
}
664
 
665
void GLAPIENTRY
666
_mesa_MultiTexCoord1d(GLenum target, GLdouble s)
667
{
668
   MULTI_TEXCOORD1( target, (GLfloat) s );
669
}
670
 
671
void GLAPIENTRY
672
_mesa_MultiTexCoord1dv(GLenum target, const GLdouble *v)
673
{
674
   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
675
}
676
 
677
void GLAPIENTRY
678
_mesa_MultiTexCoord1i(GLenum target, GLint s)
679
{
680
   MULTI_TEXCOORD1( target, (GLfloat) s );
681
}
682
 
683
void GLAPIENTRY
684
_mesa_MultiTexCoord1iv(GLenum target, const GLint *v)
685
{
686
   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
687
}
688
 
689
void GLAPIENTRY
690
_mesa_MultiTexCoord1s(GLenum target, GLshort s)
691
{
692
   MULTI_TEXCOORD1( target, (GLfloat) s );
693
}
694
 
695
void GLAPIENTRY
696
_mesa_MultiTexCoord1sv(GLenum target, const GLshort *v)
697
{
698
   MULTI_TEXCOORD1( target, (GLfloat) v[0] );
699
}
700
 
701
void GLAPIENTRY
702
_mesa_MultiTexCoord2d(GLenum target, GLdouble s, GLdouble t)
703
{
704
   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
705
}
706
 
707
void GLAPIENTRY
708
_mesa_MultiTexCoord2dv(GLenum target, const GLdouble *v)
709
{
710
   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
711
}
712
 
713
void GLAPIENTRY
714
_mesa_MultiTexCoord2i(GLenum target, GLint s, GLint t)
715
{
716
   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
717
}
718
 
719
void GLAPIENTRY
720
_mesa_MultiTexCoord2iv(GLenum target, const GLint *v)
721
{
722
   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
723
}
724
 
725
void GLAPIENTRY
726
_mesa_MultiTexCoord2s(GLenum target, GLshort s, GLshort t)
727
{
728
   MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t );
729
}
730
 
731
void GLAPIENTRY
732
_mesa_MultiTexCoord2sv(GLenum target, const GLshort *v)
733
{
734
   MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] );
735
}
736
 
737
void GLAPIENTRY
738
_mesa_MultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r)
739
{
740
   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
741
}
742
 
743
void GLAPIENTRY
744
_mesa_MultiTexCoord3dv(GLenum target, const GLdouble *v)
745
{
746
   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
747
}
748
 
749
void GLAPIENTRY
750
_mesa_MultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r)
751
{
752
   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
753
}
754
 
755
void GLAPIENTRY
756
_mesa_MultiTexCoord3iv(GLenum target, const GLint *v)
757
{
758
   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
759
}
760
 
761
void GLAPIENTRY
762
_mesa_MultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r)
763
{
764
   MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r );
765
}
766
 
767
void GLAPIENTRY
768
_mesa_MultiTexCoord3sv(GLenum target, const GLshort *v)
769
{
770
   MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
771
}
772
 
773
void GLAPIENTRY
774
_mesa_MultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
775
{
776
   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
777
		    (GLfloat) r, (GLfloat) q );
778
}
779
 
780
void GLAPIENTRY
781
_mesa_MultiTexCoord4dv(GLenum target, const GLdouble *v)
782
{
783
   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
784
		    (GLfloat) v[2], (GLfloat) v[3] );
785
}
786
 
787
void GLAPIENTRY
788
_mesa_MultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q)
789
{
790
   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
791
		    (GLfloat) r, (GLfloat) q );
792
}
793
 
794
void GLAPIENTRY
795
_mesa_MultiTexCoord4iv(GLenum target, const GLint *v)
796
{
797
   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
798
		    (GLfloat) v[2], (GLfloat) v[3] );
799
}
800
 
801
void GLAPIENTRY
802
_mesa_MultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
803
{
804
   MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t,
805
		    (GLfloat) r, (GLfloat) q );
806
}
807
 
808
void GLAPIENTRY
809
_mesa_MultiTexCoord4sv(GLenum target, const GLshort *v)
810
{
811
   MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1],
812
		    (GLfloat) v[2], (GLfloat) v[3] );
813
}
814
 
815
void GLAPIENTRY
816
_mesa_EvalCoord2dv( const GLdouble *u )
817
{
818
   EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] );
819
}
820
 
821
void GLAPIENTRY
822
_mesa_EvalCoord2fv( const GLfloat *u )
823
{
824
   EVALCOORD2( u[0], u[1] );
825
}
826
 
827
void GLAPIENTRY
828
_mesa_EvalCoord2d( GLdouble u, GLdouble v )
829
{
830
   EVALCOORD2( (GLfloat) u, (GLfloat) v );
831
}
832
 
833
void GLAPIENTRY
834
_mesa_EvalCoord1dv( const GLdouble *u )
835
{
836
   EVALCOORD1( (GLfloat) *u );
837
}
838
 
839
void GLAPIENTRY
840
_mesa_EvalCoord1fv( const GLfloat *u )
841
{
842
   EVALCOORD1( (GLfloat) *u );
843
}
844
 
845
void GLAPIENTRY
846
_mesa_EvalCoord1d( GLdouble u )
847
{
848
   EVALCOORD1( (GLfloat) u );
849
}
850
 
851
void GLAPIENTRY
852
_mesa_Materialf( GLenum face, GLenum pname, GLfloat param )
853
{
854
   GLfloat fparam[4];
855
   fparam[0] = param;
856
   MATERIALFV( face, pname, fparam );
857
}
858
 
859
void GLAPIENTRY
860
_mesa_Materiali(GLenum face, GLenum pname, GLint param )
861
{
862
   GLfloat p = (GLfloat) param;
863
   MATERIALFV(face, pname, &p);
864
}
865
 
866
void GLAPIENTRY
867
_mesa_Materialiv(GLenum face, GLenum pname, const GLint *params )
868
{
869
   GLfloat fparam[4];
870
   switch (pname) {
871
   case GL_AMBIENT:
872
   case GL_DIFFUSE:
873
   case GL_SPECULAR:
874
   case GL_EMISSION:
875
   case GL_AMBIENT_AND_DIFFUSE:
876
      fparam[0] = INT_TO_FLOAT( params[0] );
877
      fparam[1] = INT_TO_FLOAT( params[1] );
878
      fparam[2] = INT_TO_FLOAT( params[2] );
879
      fparam[3] = INT_TO_FLOAT( params[3] );
880
      break;
881
   case GL_SHININESS:
882
      fparam[0] = (GLfloat) params[0];
883
      break;
884
   case GL_COLOR_INDEXES:
885
      fparam[0] = (GLfloat) params[0];
886
      fparam[1] = (GLfloat) params[1];
887
      fparam[2] = (GLfloat) params[2];
888
      break;
889
   default:
890
      ;
891
   }
892
   MATERIALFV(face, pname, fparam);
893
}
894
 
895
 
896
void GLAPIENTRY
897
_mesa_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
898
{
899
   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
900
}
901
 
902
void GLAPIENTRY
903
_mesa_Rectdv(const GLdouble *v1, const GLdouble *v2)
904
{
905
   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
906
}
907
 
908
void GLAPIENTRY
909
_mesa_Rectfv(const GLfloat *v1, const GLfloat *v2)
910
{
911
   RECTF(v1[0], v1[1], v2[0], v2[1]);
912
}
913
 
914
void GLAPIENTRY
915
_mesa_Recti(GLint x1, GLint y1, GLint x2, GLint y2)
916
{
917
   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
918
}
919
 
920
void GLAPIENTRY
921
_mesa_Rectiv(const GLint *v1, const GLint *v2)
922
{
923
   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
924
}
925
 
926
void GLAPIENTRY
927
_mesa_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2)
928
{
929
   RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2);
930
}
931
 
932
void GLAPIENTRY
933
_mesa_Rectsv(const GLshort *v1, const GLshort *v2)
934
{
935
   RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]);
936
}
937
 
938
void GLAPIENTRY
939
_mesa_SecondaryColor3b( GLbyte red, GLbyte green, GLbyte blue )
940
{
941
   SECONDARYCOLORF( BYTE_TO_FLOAT(red),
942
		    BYTE_TO_FLOAT(green),
943
		    BYTE_TO_FLOAT(blue) );
944
}
945
 
946
void GLAPIENTRY
947
_mesa_SecondaryColor3d( GLdouble red, GLdouble green, GLdouble blue )
948
{
949
   SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue );
950
}
951
 
952
void GLAPIENTRY
953
_mesa_SecondaryColor3i( GLint red, GLint green, GLint blue )
954
{
955
   SECONDARYCOLORF( INT_TO_FLOAT(red),
956
		    INT_TO_FLOAT(green),
957
		    INT_TO_FLOAT(blue));
958
}
959
 
960
void GLAPIENTRY
961
_mesa_SecondaryColor3s( GLshort red, GLshort green, GLshort blue )
962
{
963
   SECONDARYCOLORF(SHORT_TO_FLOAT(red),
964
                   SHORT_TO_FLOAT(green),
965
                   SHORT_TO_FLOAT(blue));
966
}
967
 
968
void GLAPIENTRY
969
_mesa_SecondaryColor3ui( GLuint red, GLuint green, GLuint blue )
970
{
971
   SECONDARYCOLORF(UINT_TO_FLOAT(red),
972
                   UINT_TO_FLOAT(green),
973
                   UINT_TO_FLOAT(blue));
974
}
975
 
976
void GLAPIENTRY
977
_mesa_SecondaryColor3us( GLushort red, GLushort green, GLushort blue )
978
{
979
   SECONDARYCOLORF(USHORT_TO_FLOAT(red),
980
                   USHORT_TO_FLOAT(green),
981
                   USHORT_TO_FLOAT(blue));
982
}
983
 
984
void GLAPIENTRY
985
_mesa_SecondaryColor3ub( GLubyte red, GLubyte green, GLubyte blue )
986
{
987
   SECONDARYCOLORF(UBYTE_TO_FLOAT(red),
988
                   UBYTE_TO_FLOAT(green),
989
                   UBYTE_TO_FLOAT(blue));
990
}
991
 
992
void GLAPIENTRY
993
_mesa_SecondaryColor3bv( const GLbyte *v )
994
{
995
   SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]),
996
                   BYTE_TO_FLOAT(v[1]),
997
                   BYTE_TO_FLOAT(v[2]));
998
}
999
 
1000
void GLAPIENTRY
1001
_mesa_SecondaryColor3dv( const GLdouble *v )
1002
{
1003
   SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] );
1004
}
1005
void GLAPIENTRY
1006
_mesa_SecondaryColor3iv( const GLint *v )
1007
{
1008
   SECONDARYCOLORF(INT_TO_FLOAT(v[0]),
1009
                   INT_TO_FLOAT(v[1]),
1010
                   INT_TO_FLOAT(v[2]));
1011
}
1012
 
1013
void GLAPIENTRY
1014
_mesa_SecondaryColor3sv( const GLshort *v )
1015
{
1016
   SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]),
1017
                   SHORT_TO_FLOAT(v[1]),
1018
                   SHORT_TO_FLOAT(v[2]));
1019
}
1020
 
1021
void GLAPIENTRY
1022
_mesa_SecondaryColor3uiv( const GLuint *v )
1023
{
1024
   SECONDARYCOLORF(UINT_TO_FLOAT(v[0]),
1025
                   UINT_TO_FLOAT(v[1]),
1026
                   UINT_TO_FLOAT(v[2]));
1027
}
1028
 
1029
void GLAPIENTRY
1030
_mesa_SecondaryColor3usv( const GLushort *v )
1031
{
1032
   SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]),
1033
                   USHORT_TO_FLOAT(v[1]),
1034
                   USHORT_TO_FLOAT(v[2]));
1035
}
1036
 
1037
void GLAPIENTRY
1038
_mesa_SecondaryColor3ubv( const GLubyte *v )
1039
{
1040
   SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]),
1041
                   UBYTE_TO_FLOAT(v[1]),
1042
                   UBYTE_TO_FLOAT(v[2]));
1043
}
1044
 
1045
 
1046
/*
1047
 * GL_NV_vertex_program:
1048
 * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions.
1049
 * Note that attribute indexes DO alias conventional vertex attributes.
1050
 */
1051
 
1052
void GLAPIENTRY
1053
_mesa_VertexAttrib1sNV(GLuint index, GLshort x)
1054
{
1055
   ATTRIB1NV(index, (GLfloat) x);
1056
}
1057
 
1058
void GLAPIENTRY
1059
_mesa_VertexAttrib1dNV(GLuint index, GLdouble x)
1060
{
1061
   ATTRIB1NV(index, (GLfloat) x);
1062
}
1063
 
1064
void GLAPIENTRY
1065
_mesa_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y)
1066
{
1067
   ATTRIB2NV(index, (GLfloat) x, y);
1068
}
1069
 
1070
void GLAPIENTRY
1071
_mesa_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y)
1072
{
1073
   ATTRIB2NV(index, (GLfloat) x, (GLfloat) y);
1074
}
1075
 
1076
void GLAPIENTRY
1077
_mesa_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z)
1078
{
1079
   ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
1080
}
1081
 
1082
void GLAPIENTRY
1083
_mesa_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z)
1084
{
1085
   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
1086
}
1087
 
1088
void GLAPIENTRY
1089
_mesa_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
1090
{
1091
   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1092
}
1093
 
1094
void GLAPIENTRY
1095
_mesa_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
1096
{
1097
   ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1098
}
1099
 
1100
void GLAPIENTRY
1101
_mesa_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
1102
{
1103
   ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
1104
	UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
1105
}
1106
 
1107
void GLAPIENTRY
1108
_mesa_VertexAttrib1svNV(GLuint index, const GLshort *v)
1109
{
1110
   ATTRIB1NV(index, (GLfloat) v[0]);
1111
}
1112
 
1113
void GLAPIENTRY
1114
_mesa_VertexAttrib1dvNV(GLuint index, const GLdouble *v)
1115
{
1116
   ATTRIB1NV(index, (GLfloat) v[0]);
1117
}
1118
 
1119
void GLAPIENTRY
1120
_mesa_VertexAttrib2svNV(GLuint index, const GLshort *v)
1121
{
1122
   ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
1123
}
1124
 
1125
void GLAPIENTRY
1126
_mesa_VertexAttrib2dvNV(GLuint index, const GLdouble *v)
1127
{
1128
   ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]);
1129
}
1130
 
1131
void GLAPIENTRY
1132
_mesa_VertexAttrib3svNV(GLuint index, const GLshort *v)
1133
{
1134
   ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1135
}
1136
 
1137
void GLAPIENTRY
1138
_mesa_VertexAttrib3dvNV(GLuint index, const GLdouble *v)
1139
{
1140
   ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1141
}
1142
 
1143
void GLAPIENTRY
1144
_mesa_VertexAttrib4svNV(GLuint index, const GLshort *v)
1145
{
1146
   ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2],
1147
	  (GLfloat)v[3]);
1148
}
1149
 
1150
void GLAPIENTRY
1151
_mesa_VertexAttrib4dvNV(GLuint index, const GLdouble *v)
1152
{
1153
   ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1154
}
1155
 
1156
void GLAPIENTRY
1157
_mesa_VertexAttrib4ubvNV(GLuint index, const GLubyte *v)
1158
{
1159
   ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
1160
          UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
1161
}
1162
 
1163
 
1164
void GLAPIENTRY
1165
_mesa_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v)
1166
{
1167
   GLint i;
1168
   for (i = n - 1; i >= 0; i--)
1169
      _mesa_VertexAttrib1svNV(index + i, v + i);
1170
}
1171
 
1172
void GLAPIENTRY
1173
_mesa_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v)
1174
{
1175
   GLint i;
1176
   for (i = n - 1; i >= 0; i--)
1177
      ATTRIB1NV(index + i, v[i]);
1178
}
1179
 
1180
void GLAPIENTRY
1181
_mesa_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v)
1182
{
1183
   GLint i;
1184
   for (i = n - 1; i >= 0; i--)
1185
      _mesa_VertexAttrib1dvNV(index + i, v + i);
1186
}
1187
 
1188
void GLAPIENTRY
1189
_mesa_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v)
1190
{
1191
   GLint i;
1192
   for (i = n - 1; i >= 0; i--)
1193
      _mesa_VertexAttrib2svNV(index + i, v + 2 * i);
1194
}
1195
 
1196
void GLAPIENTRY
1197
_mesa_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v)
1198
{
1199
   GLint i;
1200
   for (i = n - 1; i >= 0; i--)
1201
      ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]);
1202
}
1203
 
1204
void GLAPIENTRY
1205
_mesa_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v)
1206
{
1207
   GLint i;
1208
   for (i = n - 1; i >= 0; i--)
1209
      _mesa_VertexAttrib2dvNV(index + i, v + 2 * i);
1210
}
1211
 
1212
void GLAPIENTRY
1213
_mesa_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v)
1214
{
1215
   GLint i;
1216
   for (i = n - 1; i >= 0; i--)
1217
      _mesa_VertexAttrib3svNV(index + i, v + 3 * i);
1218
}
1219
 
1220
void GLAPIENTRY
1221
_mesa_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v)
1222
{
1223
   GLint i;
1224
   for (i = n - 1; i >= 0; i--)
1225
      ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]);
1226
}
1227
 
1228
void GLAPIENTRY
1229
_mesa_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v)
1230
{
1231
   GLint i;
1232
   for (i = n - 1; i >= 0; i--)
1233
      _mesa_VertexAttrib3dvNV(index + i, v + 3 * i);
1234
}
1235
 
1236
void GLAPIENTRY
1237
_mesa_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v)
1238
{
1239
   GLint i;
1240
   for (i = n - 1; i >= 0; i--)
1241
      _mesa_VertexAttrib4svNV(index + i, v + 4 * i);
1242
}
1243
 
1244
void GLAPIENTRY
1245
_mesa_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v)
1246
{
1247
   GLint i;
1248
   for (i = n - 1; i >= 0; i--)
1249
      ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]);
1250
}
1251
 
1252
void GLAPIENTRY
1253
_mesa_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v)
1254
{
1255
   GLint i;
1256
   for (i = n - 1; i >= 0; i--)
1257
      _mesa_VertexAttrib4dvNV(index + i, v + 4 * i);
1258
}
1259
 
1260
void GLAPIENTRY
1261
_mesa_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v)
1262
{
1263
   GLint i;
1264
   for (i = n - 1; i >= 0; i--)
1265
      _mesa_VertexAttrib4ubvNV(index + i, v + 4 * i);
1266
}
1267
 
1268
 
1269
/*
1270
 * GL_ARB_vertex_program
1271
 * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions.
1272
 * Note that attribute indexes do NOT alias conventional attributes.
1273
 */
1274
 
1275
void GLAPIENTRY
1276
_mesa_VertexAttrib1s(GLuint index, GLshort x)
1277
{
1278
   ATTRIB1ARB(index, (GLfloat) x);
1279
}
1280
 
1281
void GLAPIENTRY
1282
_mesa_VertexAttrib1d(GLuint index, GLdouble x)
1283
{
1284
   ATTRIB1ARB(index, (GLfloat) x);
1285
}
1286
 
1287
void GLAPIENTRY
1288
_mesa_VertexAttrib2s(GLuint index, GLshort x, GLshort y)
1289
{
1290
   ATTRIB2ARB(index, (GLfloat) x, y);
1291
}
1292
 
1293
void GLAPIENTRY
1294
_mesa_VertexAttrib2d(GLuint index, GLdouble x, GLdouble y)
1295
{
1296
   ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y);
1297
}
1298
 
1299
void GLAPIENTRY
1300
_mesa_VertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z)
1301
{
1302
   ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z);
1303
}
1304
 
1305
void GLAPIENTRY
1306
_mesa_VertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
1307
{
1308
   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F);
1309
}
1310
 
1311
void GLAPIENTRY
1312
_mesa_VertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
1313
{
1314
   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1315
}
1316
 
1317
void GLAPIENTRY
1318
_mesa_VertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
1319
{
1320
   ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w);
1321
}
1322
 
1323
void GLAPIENTRY
1324
_mesa_VertexAttrib1sv(GLuint index, const GLshort *v)
1325
{
1326
   ATTRIB1ARB(index, (GLfloat) v[0]);
1327
}
1328
 
1329
void GLAPIENTRY
1330
_mesa_VertexAttrib1dv(GLuint index, const GLdouble *v)
1331
{
1332
   ATTRIB1ARB(index, (GLfloat) v[0]);
1333
}
1334
 
1335
void GLAPIENTRY
1336
_mesa_VertexAttrib2sv(GLuint index, const GLshort *v)
1337
{
1338
   ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
1339
}
1340
 
1341
void GLAPIENTRY
1342
_mesa_VertexAttrib2dv(GLuint index, const GLdouble *v)
1343
{
1344
   ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]);
1345
}
1346
 
1347
void GLAPIENTRY
1348
_mesa_VertexAttrib3sv(GLuint index, const GLshort *v)
1349
{
1350
   ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1351
}
1352
 
1353
void GLAPIENTRY
1354
_mesa_VertexAttrib3dv(GLuint index, const GLdouble *v)
1355
{
1356
   ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]);
1357
}
1358
 
1359
void GLAPIENTRY
1360
_mesa_VertexAttrib4sv(GLuint index, const GLshort *v)
1361
{
1362
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2],
1363
	  (GLfloat)v[3]);
1364
}
1365
 
1366
void GLAPIENTRY
1367
_mesa_VertexAttrib4dv(GLuint index, const GLdouble *v)
1368
{
1369
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1370
}
1371
 
1372
void GLAPIENTRY
1373
_mesa_VertexAttrib4bv(GLuint index, const GLbyte * v)
1374
{
1375
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1376
}
1377
 
1378
void GLAPIENTRY
1379
_mesa_VertexAttrib4iv(GLuint index, const GLint * v)
1380
{
1381
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1382
}
1383
 
1384
void GLAPIENTRY
1385
_mesa_VertexAttrib4ubv(GLuint index, const GLubyte * v)
1386
{
1387
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1388
}
1389
 
1390
void GLAPIENTRY
1391
_mesa_VertexAttrib4usv(GLuint index, const GLushort * v)
1392
{
1393
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1394
}
1395
 
1396
void GLAPIENTRY
1397
_mesa_VertexAttrib4uiv(GLuint index, const GLuint * v)
1398
{
1399
   ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]);
1400
}
1401
 
1402
void GLAPIENTRY
1403
_mesa_VertexAttrib4Nbv(GLuint index, const GLbyte * v)
1404
{
1405
   ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]),
1406
          BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]));
1407
}
1408
 
1409
void GLAPIENTRY
1410
_mesa_VertexAttrib4Nsv(GLuint index, const GLshort * v)
1411
{
1412
   ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]),
1413
          SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]));
1414
}
1415
 
1416
void GLAPIENTRY
1417
_mesa_VertexAttrib4Niv(GLuint index, const GLint * v)
1418
{
1419
   ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]),
1420
          INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]));
1421
}
1422
 
1423
void GLAPIENTRY
1424
_mesa_VertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
1425
{
1426
   ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y),
1427
              UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w));
1428
}
1429
 
1430
void GLAPIENTRY
1431
_mesa_VertexAttrib4Nubv(GLuint index, const GLubyte * v)
1432
{
1433
   ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]),
1434
          UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]));
1435
}
1436
 
1437
void GLAPIENTRY
1438
_mesa_VertexAttrib4Nusv(GLuint index, const GLushort * v)
1439
{
1440
   ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]),
1441
          USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]));
1442
}
1443
 
1444
void GLAPIENTRY
1445
_mesa_VertexAttrib4Nuiv(GLuint index, const GLuint * v)
1446
{
1447
   ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]),
1448
          UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]));
1449
}
1450
 
1451
 
1452
 
1453
/**
1454
 * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes.
1455
 * Note that attribute indexes do NOT alias conventional attributes.
1456
 */
1457
 
1458
void GLAPIENTRY
1459
_mesa_VertexAttribI1iv(GLuint index, const GLint *v)
1460
{
1461
   ATTRIBI_1I(index, v[0]);
1462
}
1463
 
1464
void GLAPIENTRY
1465
_mesa_VertexAttribI1uiv(GLuint index, const GLuint *v)
1466
{
1467
   ATTRIBI_1UI(index, v[0]);
1468
}
1469
 
1470
void GLAPIENTRY
1471
_mesa_VertexAttribI4bv(GLuint index, const GLbyte *v)
1472
{
1473
   ATTRIBI_4I(index, v[0], v[1], v[2], v[3]);
1474
}
1475
 
1476
void GLAPIENTRY
1477
_mesa_VertexAttribI4sv(GLuint index, const GLshort *v)
1478
{
1479
   ATTRIBI_4I(index, v[0], v[1], v[2], v[3]);
1480
}
1481
 
1482
void GLAPIENTRY
1483
_mesa_VertexAttribI4ubv(GLuint index, const GLubyte *v)
1484
{
1485
   ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]);
1486
}
1487
 
1488
void GLAPIENTRY
1489
_mesa_VertexAttribI4usv(GLuint index, const GLushort *v)
1490
{
1491
   ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]);
1492
}
1493
 
1494
 
1495
 
1496
 
1497
/*
1498
 * This code never registers handlers for any of the entry points
1499
 * listed in vtxfmt.h.
1500
 */
1501
void
1502
_mesa_loopback_init_api_table(const struct gl_context *ctx,
1503
                              struct _glapi_table *dest)
1504
{
1505
   if (ctx->API != API_OPENGL_CORE && ctx->API != API_OPENGLES2) {
1506
      SET_Color4ub(dest, _mesa_Color4ub);
1507
      SET_Materialf(dest, _mesa_Materialf);
1508
   }
1509
   if (ctx->API == API_OPENGL_COMPAT) {
1510
      SET_Color3b(dest, _mesa_Color3b);
1511
      SET_Color3d(dest, _mesa_Color3d);
1512
      SET_Color3i(dest, _mesa_Color3i);
1513
      SET_Color3s(dest, _mesa_Color3s);
1514
      SET_Color3ui(dest, _mesa_Color3ui);
1515
      SET_Color3us(dest, _mesa_Color3us);
1516
      SET_Color3ub(dest, _mesa_Color3ub);
1517
      SET_Color4b(dest, _mesa_Color4b);
1518
      SET_Color4d(dest, _mesa_Color4d);
1519
      SET_Color4i(dest, _mesa_Color4i);
1520
      SET_Color4s(dest, _mesa_Color4s);
1521
      SET_Color4ui(dest, _mesa_Color4ui);
1522
      SET_Color4us(dest, _mesa_Color4us);
1523
      SET_Color3bv(dest, _mesa_Color3bv);
1524
      SET_Color3dv(dest, _mesa_Color3dv);
1525
      SET_Color3iv(dest, _mesa_Color3iv);
1526
      SET_Color3sv(dest, _mesa_Color3sv);
1527
      SET_Color3uiv(dest, _mesa_Color3uiv);
1528
      SET_Color3usv(dest, _mesa_Color3usv);
1529
      SET_Color3ubv(dest, _mesa_Color3ubv);
1530
      SET_Color4bv(dest, _mesa_Color4bv);
1531
      SET_Color4dv(dest, _mesa_Color4dv);
1532
      SET_Color4iv(dest, _mesa_Color4iv);
1533
      SET_Color4sv(dest, _mesa_Color4sv);
1534
      SET_Color4uiv(dest, _mesa_Color4uiv);
1535
      SET_Color4usv(dest, _mesa_Color4usv);
1536
      SET_Color4ubv(dest, _mesa_Color4ubv);
1537
 
1538
      SET_SecondaryColor3b(dest, _mesa_SecondaryColor3b);
1539
      SET_SecondaryColor3d(dest, _mesa_SecondaryColor3d);
1540
      SET_SecondaryColor3i(dest, _mesa_SecondaryColor3i);
1541
      SET_SecondaryColor3s(dest, _mesa_SecondaryColor3s);
1542
      SET_SecondaryColor3ui(dest, _mesa_SecondaryColor3ui);
1543
      SET_SecondaryColor3us(dest, _mesa_SecondaryColor3us);
1544
      SET_SecondaryColor3ub(dest, _mesa_SecondaryColor3ub);
1545
      SET_SecondaryColor3bv(dest, _mesa_SecondaryColor3bv);
1546
      SET_SecondaryColor3dv(dest, _mesa_SecondaryColor3dv);
1547
      SET_SecondaryColor3iv(dest, _mesa_SecondaryColor3iv);
1548
      SET_SecondaryColor3sv(dest, _mesa_SecondaryColor3sv);
1549
      SET_SecondaryColor3uiv(dest, _mesa_SecondaryColor3uiv);
1550
      SET_SecondaryColor3usv(dest, _mesa_SecondaryColor3usv);
1551
      SET_SecondaryColor3ubv(dest, _mesa_SecondaryColor3ubv);
1552
 
1553
      SET_EdgeFlagv(dest, _mesa_EdgeFlagv);
1554
 
1555
      SET_Indexd(dest, _mesa_Indexd);
1556
      SET_Indexi(dest, _mesa_Indexi);
1557
      SET_Indexs(dest, _mesa_Indexs);
1558
      SET_Indexub(dest, _mesa_Indexub);
1559
      SET_Indexdv(dest, _mesa_Indexdv);
1560
      SET_Indexiv(dest, _mesa_Indexiv);
1561
      SET_Indexsv(dest, _mesa_Indexsv);
1562
      SET_Indexubv(dest, _mesa_Indexubv);
1563
      SET_Normal3b(dest, _mesa_Normal3b);
1564
      SET_Normal3d(dest, _mesa_Normal3d);
1565
      SET_Normal3i(dest, _mesa_Normal3i);
1566
      SET_Normal3s(dest, _mesa_Normal3s);
1567
      SET_Normal3bv(dest, _mesa_Normal3bv);
1568
      SET_Normal3dv(dest, _mesa_Normal3dv);
1569
      SET_Normal3iv(dest, _mesa_Normal3iv);
1570
      SET_Normal3sv(dest, _mesa_Normal3sv);
1571
      SET_TexCoord1d(dest, _mesa_TexCoord1d);
1572
      SET_TexCoord1i(dest, _mesa_TexCoord1i);
1573
      SET_TexCoord1s(dest, _mesa_TexCoord1s);
1574
      SET_TexCoord2d(dest, _mesa_TexCoord2d);
1575
      SET_TexCoord2s(dest, _mesa_TexCoord2s);
1576
      SET_TexCoord2i(dest, _mesa_TexCoord2i);
1577
      SET_TexCoord3d(dest, _mesa_TexCoord3d);
1578
      SET_TexCoord3i(dest, _mesa_TexCoord3i);
1579
      SET_TexCoord3s(dest, _mesa_TexCoord3s);
1580
      SET_TexCoord4d(dest, _mesa_TexCoord4d);
1581
      SET_TexCoord4i(dest, _mesa_TexCoord4i);
1582
      SET_TexCoord4s(dest, _mesa_TexCoord4s);
1583
      SET_TexCoord1dv(dest, _mesa_TexCoord1dv);
1584
      SET_TexCoord1iv(dest, _mesa_TexCoord1iv);
1585
      SET_TexCoord1sv(dest, _mesa_TexCoord1sv);
1586
      SET_TexCoord2dv(dest, _mesa_TexCoord2dv);
1587
      SET_TexCoord2iv(dest, _mesa_TexCoord2iv);
1588
      SET_TexCoord2sv(dest, _mesa_TexCoord2sv);
1589
      SET_TexCoord3dv(dest, _mesa_TexCoord3dv);
1590
      SET_TexCoord3iv(dest, _mesa_TexCoord3iv);
1591
      SET_TexCoord3sv(dest, _mesa_TexCoord3sv);
1592
      SET_TexCoord4dv(dest, _mesa_TexCoord4dv);
1593
      SET_TexCoord4iv(dest, _mesa_TexCoord4iv);
1594
      SET_TexCoord4sv(dest, _mesa_TexCoord4sv);
1595
      SET_Vertex2d(dest, _mesa_Vertex2d);
1596
      SET_Vertex2i(dest, _mesa_Vertex2i);
1597
      SET_Vertex2s(dest, _mesa_Vertex2s);
1598
      SET_Vertex3d(dest, _mesa_Vertex3d);
1599
      SET_Vertex3i(dest, _mesa_Vertex3i);
1600
      SET_Vertex3s(dest, _mesa_Vertex3s);
1601
      SET_Vertex4d(dest, _mesa_Vertex4d);
1602
      SET_Vertex4i(dest, _mesa_Vertex4i);
1603
      SET_Vertex4s(dest, _mesa_Vertex4s);
1604
      SET_Vertex2dv(dest, _mesa_Vertex2dv);
1605
      SET_Vertex2iv(dest, _mesa_Vertex2iv);
1606
      SET_Vertex2sv(dest, _mesa_Vertex2sv);
1607
      SET_Vertex3dv(dest, _mesa_Vertex3dv);
1608
      SET_Vertex3iv(dest, _mesa_Vertex3iv);
1609
      SET_Vertex3sv(dest, _mesa_Vertex3sv);
1610
      SET_Vertex4dv(dest, _mesa_Vertex4dv);
1611
      SET_Vertex4iv(dest, _mesa_Vertex4iv);
1612
      SET_Vertex4sv(dest, _mesa_Vertex4sv);
1613
      SET_MultiTexCoord1d(dest, _mesa_MultiTexCoord1d);
1614
      SET_MultiTexCoord1dv(dest, _mesa_MultiTexCoord1dv);
1615
      SET_MultiTexCoord1i(dest, _mesa_MultiTexCoord1i);
1616
      SET_MultiTexCoord1iv(dest, _mesa_MultiTexCoord1iv);
1617
      SET_MultiTexCoord1s(dest, _mesa_MultiTexCoord1s);
1618
      SET_MultiTexCoord1sv(dest, _mesa_MultiTexCoord1sv);
1619
      SET_MultiTexCoord2d(dest, _mesa_MultiTexCoord2d);
1620
      SET_MultiTexCoord2dv(dest, _mesa_MultiTexCoord2dv);
1621
      SET_MultiTexCoord2i(dest, _mesa_MultiTexCoord2i);
1622
      SET_MultiTexCoord2iv(dest, _mesa_MultiTexCoord2iv);
1623
      SET_MultiTexCoord2s(dest, _mesa_MultiTexCoord2s);
1624
      SET_MultiTexCoord2sv(dest, _mesa_MultiTexCoord2sv);
1625
      SET_MultiTexCoord3d(dest, _mesa_MultiTexCoord3d);
1626
      SET_MultiTexCoord3dv(dest, _mesa_MultiTexCoord3dv);
1627
      SET_MultiTexCoord3i(dest, _mesa_MultiTexCoord3i);
1628
      SET_MultiTexCoord3iv(dest, _mesa_MultiTexCoord3iv);
1629
      SET_MultiTexCoord3s(dest, _mesa_MultiTexCoord3s);
1630
      SET_MultiTexCoord3sv(dest, _mesa_MultiTexCoord3sv);
1631
      SET_MultiTexCoord4d(dest, _mesa_MultiTexCoord4d);
1632
      SET_MultiTexCoord4dv(dest, _mesa_MultiTexCoord4dv);
1633
      SET_MultiTexCoord4i(dest, _mesa_MultiTexCoord4i);
1634
      SET_MultiTexCoord4iv(dest, _mesa_MultiTexCoord4iv);
1635
      SET_MultiTexCoord4s(dest, _mesa_MultiTexCoord4s);
1636
      SET_MultiTexCoord4sv(dest, _mesa_MultiTexCoord4sv);
1637
      SET_EvalCoord2dv(dest, _mesa_EvalCoord2dv);
1638
      SET_EvalCoord2fv(dest, _mesa_EvalCoord2fv);
1639
      SET_EvalCoord2d(dest, _mesa_EvalCoord2d);
1640
      SET_EvalCoord1dv(dest, _mesa_EvalCoord1dv);
1641
      SET_EvalCoord1fv(dest, _mesa_EvalCoord1fv);
1642
      SET_EvalCoord1d(dest, _mesa_EvalCoord1d);
1643
      SET_Materiali(dest, _mesa_Materiali);
1644
      SET_Materialiv(dest, _mesa_Materialiv);
1645
      SET_Rectd(dest, _mesa_Rectd);
1646
      SET_Rectdv(dest, _mesa_Rectdv);
1647
      SET_Rectfv(dest, _mesa_Rectfv);
1648
      SET_Recti(dest, _mesa_Recti);
1649
      SET_Rectiv(dest, _mesa_Rectiv);
1650
      SET_Rects(dest, _mesa_Rects);
1651
      SET_Rectsv(dest, _mesa_Rectsv);
1652
      SET_FogCoordd(dest, _mesa_FogCoordd);
1653
      SET_FogCoorddv(dest, _mesa_FogCoorddv);
1654
   }
1655
 
1656
   if (ctx->API == API_OPENGL_COMPAT) {
1657
      SET_VertexAttrib1sNV(dest, _mesa_VertexAttrib1sNV);
1658
      SET_VertexAttrib1dNV(dest, _mesa_VertexAttrib1dNV);
1659
      SET_VertexAttrib2sNV(dest, _mesa_VertexAttrib2sNV);
1660
      SET_VertexAttrib2dNV(dest, _mesa_VertexAttrib2dNV);
1661
      SET_VertexAttrib3sNV(dest, _mesa_VertexAttrib3sNV);
1662
      SET_VertexAttrib3dNV(dest, _mesa_VertexAttrib3dNV);
1663
      SET_VertexAttrib4sNV(dest, _mesa_VertexAttrib4sNV);
1664
      SET_VertexAttrib4dNV(dest, _mesa_VertexAttrib4dNV);
1665
      SET_VertexAttrib4ubNV(dest, _mesa_VertexAttrib4ubNV);
1666
      SET_VertexAttrib1svNV(dest, _mesa_VertexAttrib1svNV);
1667
      SET_VertexAttrib1dvNV(dest, _mesa_VertexAttrib1dvNV);
1668
      SET_VertexAttrib2svNV(dest, _mesa_VertexAttrib2svNV);
1669
      SET_VertexAttrib2dvNV(dest, _mesa_VertexAttrib2dvNV);
1670
      SET_VertexAttrib3svNV(dest, _mesa_VertexAttrib3svNV);
1671
      SET_VertexAttrib3dvNV(dest, _mesa_VertexAttrib3dvNV);
1672
      SET_VertexAttrib4svNV(dest, _mesa_VertexAttrib4svNV);
1673
      SET_VertexAttrib4dvNV(dest, _mesa_VertexAttrib4dvNV);
1674
      SET_VertexAttrib4ubvNV(dest, _mesa_VertexAttrib4ubvNV);
1675
      SET_VertexAttribs1svNV(dest, _mesa_VertexAttribs1svNV);
1676
      SET_VertexAttribs1fvNV(dest, _mesa_VertexAttribs1fvNV);
1677
      SET_VertexAttribs1dvNV(dest, _mesa_VertexAttribs1dvNV);
1678
      SET_VertexAttribs2svNV(dest, _mesa_VertexAttribs2svNV);
1679
      SET_VertexAttribs2fvNV(dest, _mesa_VertexAttribs2fvNV);
1680
      SET_VertexAttribs2dvNV(dest, _mesa_VertexAttribs2dvNV);
1681
      SET_VertexAttribs3svNV(dest, _mesa_VertexAttribs3svNV);
1682
      SET_VertexAttribs3fvNV(dest, _mesa_VertexAttribs3fvNV);
1683
      SET_VertexAttribs3dvNV(dest, _mesa_VertexAttribs3dvNV);
1684
      SET_VertexAttribs4svNV(dest, _mesa_VertexAttribs4svNV);
1685
      SET_VertexAttribs4fvNV(dest, _mesa_VertexAttribs4fvNV);
1686
      SET_VertexAttribs4dvNV(dest, _mesa_VertexAttribs4dvNV);
1687
      SET_VertexAttribs4ubvNV(dest, _mesa_VertexAttribs4ubvNV);
1688
   }
1689
 
1690
   if (_mesa_is_desktop_gl(ctx)) {
1691
      SET_VertexAttrib1s(dest, _mesa_VertexAttrib1s);
1692
      SET_VertexAttrib1d(dest, _mesa_VertexAttrib1d);
1693
      SET_VertexAttrib2s(dest, _mesa_VertexAttrib2s);
1694
      SET_VertexAttrib2d(dest, _mesa_VertexAttrib2d);
1695
      SET_VertexAttrib3s(dest, _mesa_VertexAttrib3s);
1696
      SET_VertexAttrib3d(dest, _mesa_VertexAttrib3d);
1697
      SET_VertexAttrib4s(dest, _mesa_VertexAttrib4s);
1698
      SET_VertexAttrib4d(dest, _mesa_VertexAttrib4d);
1699
      SET_VertexAttrib1sv(dest, _mesa_VertexAttrib1sv);
1700
      SET_VertexAttrib1dv(dest, _mesa_VertexAttrib1dv);
1701
      SET_VertexAttrib2sv(dest, _mesa_VertexAttrib2sv);
1702
      SET_VertexAttrib2dv(dest, _mesa_VertexAttrib2dv);
1703
      SET_VertexAttrib3sv(dest, _mesa_VertexAttrib3sv);
1704
      SET_VertexAttrib3dv(dest, _mesa_VertexAttrib3dv);
1705
      SET_VertexAttrib4sv(dest, _mesa_VertexAttrib4sv);
1706
      SET_VertexAttrib4dv(dest, _mesa_VertexAttrib4dv);
1707
      SET_VertexAttrib4Nub(dest, _mesa_VertexAttrib4Nub);
1708
      SET_VertexAttrib4Nubv(dest, _mesa_VertexAttrib4Nubv);
1709
      SET_VertexAttrib4bv(dest, _mesa_VertexAttrib4bv);
1710
      SET_VertexAttrib4iv(dest, _mesa_VertexAttrib4iv);
1711
      SET_VertexAttrib4ubv(dest, _mesa_VertexAttrib4ubv);
1712
      SET_VertexAttrib4usv(dest, _mesa_VertexAttrib4usv);
1713
      SET_VertexAttrib4uiv(dest, _mesa_VertexAttrib4uiv);
1714
      SET_VertexAttrib4Nbv(dest, _mesa_VertexAttrib4Nbv);
1715
      SET_VertexAttrib4Nsv(dest, _mesa_VertexAttrib4Nsv);
1716
      SET_VertexAttrib4Nusv(dest, _mesa_VertexAttrib4Nusv);
1717
      SET_VertexAttrib4Niv(dest, _mesa_VertexAttrib4Niv);
1718
      SET_VertexAttrib4Nuiv(dest, _mesa_VertexAttrib4Nuiv);
1719
 
1720
      /* GL_EXT_gpu_shader4, GL 3.0 */
1721
      SET_VertexAttribI1iv(dest, _mesa_VertexAttribI1iv);
1722
      SET_VertexAttribI1uiv(dest, _mesa_VertexAttribI1uiv);
1723
      SET_VertexAttribI4bv(dest, _mesa_VertexAttribI4bv);
1724
      SET_VertexAttribI4sv(dest, _mesa_VertexAttribI4sv);
1725
      SET_VertexAttribI4ubv(dest, _mesa_VertexAttribI4ubv);
1726
      SET_VertexAttribI4usv(dest, _mesa_VertexAttribI4usv);
1727
   }
1728
}