Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1901 | serge | 1 | /** |
2 | * \file api_loopback.c |
||
3 | * |
||
4 | * \author Keith Whitwell |
||
5 | */ |
||
6 | |||
7 | /* |
||
8 | * Mesa 3-D graphics library |
||
9 | * Version: 6.3 |
||
10 | * |
||
11 | * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. |
||
12 | * |
||
13 | * 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: |
||
19 | * |
||
20 | * The above copyright notice and this permission notice shall be included |
||
21 | * in all copies or substantial portions of the Software. |
||
22 | * |
||
23 | * 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. |
||
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 "mfeatures.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 | #if FEATURE_beginend |
||
90 | |||
91 | |||
92 | static void GLAPIENTRY |
||
93 | loopback_Color3b_f( GLbyte red, GLbyte green, GLbyte blue ) |
||
94 | { |
||
95 | COLORF( BYTE_TO_FLOAT(red), |
||
96 | BYTE_TO_FLOAT(green), |
||
97 | BYTE_TO_FLOAT(blue), |
||
98 | 1.0 ); |
||
99 | } |
||
100 | |||
101 | static void GLAPIENTRY |
||
102 | loopback_Color3d_f( GLdouble red, GLdouble green, GLdouble blue ) |
||
103 | { |
||
104 | COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, 1.0 ); |
||
105 | } |
||
106 | |||
107 | static void GLAPIENTRY |
||
108 | loopback_Color3i_f( GLint red, GLint green, GLint blue ) |
||
109 | { |
||
110 | COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), |
||
111 | INT_TO_FLOAT(blue), 1.0); |
||
112 | } |
||
113 | |||
114 | static void GLAPIENTRY |
||
115 | loopback_Color3s_f( GLshort red, GLshort green, GLshort blue ) |
||
116 | { |
||
117 | COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), |
||
118 | SHORT_TO_FLOAT(blue), 1.0); |
||
119 | } |
||
120 | |||
121 | static void GLAPIENTRY |
||
122 | loopback_Color3ui_f( GLuint red, GLuint green, GLuint blue ) |
||
123 | { |
||
124 | COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), |
||
125 | UINT_TO_FLOAT(blue), 1.0 ); |
||
126 | } |
||
127 | |||
128 | static void GLAPIENTRY |
||
129 | loopback_Color3us_f( GLushort red, GLushort green, GLushort blue ) |
||
130 | { |
||
131 | COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), |
||
132 | USHORT_TO_FLOAT(blue), 1.0 ); |
||
133 | } |
||
134 | |||
135 | static void GLAPIENTRY |
||
136 | loopback_Color3ub_f( GLubyte red, GLubyte green, GLubyte blue ) |
||
137 | { |
||
138 | COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), |
||
139 | UBYTE_TO_FLOAT(blue), 1.0 ); |
||
140 | } |
||
141 | |||
142 | |||
143 | static void GLAPIENTRY |
||
144 | loopback_Color3bv_f( const GLbyte *v ) |
||
145 | { |
||
146 | COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), |
||
147 | BYTE_TO_FLOAT(v[2]), 1.0 ); |
||
148 | } |
||
149 | |||
150 | static void GLAPIENTRY |
||
151 | loopback_Color3dv_f( const GLdouble *v ) |
||
152 | { |
||
153 | COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], 1.0 ); |
||
154 | } |
||
155 | |||
156 | static void GLAPIENTRY |
||
157 | loopback_Color3iv_f( const GLint *v ) |
||
158 | { |
||
159 | COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), |
||
160 | INT_TO_FLOAT(v[2]), 1.0 ); |
||
161 | } |
||
162 | |||
163 | static void GLAPIENTRY |
||
164 | loopback_Color3sv_f( const GLshort *v ) |
||
165 | { |
||
166 | COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), |
||
167 | SHORT_TO_FLOAT(v[2]), 1.0 ); |
||
168 | } |
||
169 | |||
170 | static void GLAPIENTRY |
||
171 | loopback_Color3uiv_f( const GLuint *v ) |
||
172 | { |
||
173 | COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), |
||
174 | UINT_TO_FLOAT(v[2]), 1.0 ); |
||
175 | } |
||
176 | |||
177 | static void GLAPIENTRY |
||
178 | loopback_Color3usv_f( const GLushort *v ) |
||
179 | { |
||
180 | COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), |
||
181 | USHORT_TO_FLOAT(v[2]), 1.0 ); |
||
182 | } |
||
183 | |||
184 | static void GLAPIENTRY |
||
185 | loopback_Color3ubv_f( const GLubyte *v ) |
||
186 | { |
||
187 | COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), |
||
188 | UBYTE_TO_FLOAT(v[2]), 1.0 ); |
||
189 | } |
||
190 | |||
191 | |||
192 | static void GLAPIENTRY |
||
193 | loopback_Color4b_f( GLbyte red, GLbyte green, GLbyte blue, |
||
194 | GLbyte alpha ) |
||
195 | { |
||
196 | COLORF( BYTE_TO_FLOAT(red), BYTE_TO_FLOAT(green), |
||
197 | BYTE_TO_FLOAT(blue), BYTE_TO_FLOAT(alpha) ); |
||
198 | } |
||
199 | |||
200 | static void GLAPIENTRY |
||
201 | loopback_Color4d_f( GLdouble red, GLdouble green, GLdouble blue, |
||
202 | GLdouble alpha ) |
||
203 | { |
||
204 | COLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue, (GLfloat) alpha ); |
||
205 | } |
||
206 | |||
207 | static void GLAPIENTRY |
||
208 | loopback_Color4i_f( GLint red, GLint green, GLint blue, GLint alpha ) |
||
209 | { |
||
210 | COLORF( INT_TO_FLOAT(red), INT_TO_FLOAT(green), |
||
211 | INT_TO_FLOAT(blue), INT_TO_FLOAT(alpha) ); |
||
212 | } |
||
213 | |||
214 | static void GLAPIENTRY |
||
215 | loopback_Color4s_f( GLshort red, GLshort green, GLshort blue, |
||
216 | GLshort alpha ) |
||
217 | { |
||
218 | COLORF( SHORT_TO_FLOAT(red), SHORT_TO_FLOAT(green), |
||
219 | SHORT_TO_FLOAT(blue), SHORT_TO_FLOAT(alpha) ); |
||
220 | } |
||
221 | |||
222 | static void GLAPIENTRY |
||
223 | loopback_Color4ui_f( GLuint red, GLuint green, GLuint blue, GLuint alpha ) |
||
224 | { |
||
225 | COLORF( UINT_TO_FLOAT(red), UINT_TO_FLOAT(green), |
||
226 | UINT_TO_FLOAT(blue), UINT_TO_FLOAT(alpha) ); |
||
227 | } |
||
228 | |||
229 | static void GLAPIENTRY |
||
230 | loopback_Color4us_f( GLushort red, GLushort green, GLushort blue, GLushort alpha ) |
||
231 | { |
||
232 | COLORF( USHORT_TO_FLOAT(red), USHORT_TO_FLOAT(green), |
||
233 | USHORT_TO_FLOAT(blue), USHORT_TO_FLOAT(alpha) ); |
||
234 | } |
||
235 | |||
236 | static void GLAPIENTRY |
||
237 | loopback_Color4ub_f( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha ) |
||
238 | { |
||
239 | COLORF( UBYTE_TO_FLOAT(red), UBYTE_TO_FLOAT(green), |
||
240 | UBYTE_TO_FLOAT(blue), UBYTE_TO_FLOAT(alpha) ); |
||
241 | } |
||
242 | |||
243 | |||
244 | static void GLAPIENTRY |
||
245 | loopback_Color4iv_f( const GLint *v ) |
||
246 | { |
||
247 | COLORF( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), |
||
248 | INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3]) ); |
||
249 | } |
||
250 | |||
251 | |||
252 | static void GLAPIENTRY |
||
253 | loopback_Color4bv_f( const GLbyte *v ) |
||
254 | { |
||
255 | COLORF( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), |
||
256 | BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3]) ); |
||
257 | } |
||
258 | |||
259 | static void GLAPIENTRY |
||
260 | loopback_Color4dv_f( const GLdouble *v ) |
||
261 | { |
||
262 | COLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3] ); |
||
263 | } |
||
264 | |||
265 | |||
266 | static void GLAPIENTRY |
||
267 | loopback_Color4sv_f( const GLshort *v) |
||
268 | { |
||
269 | COLORF( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), |
||
270 | SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3]) ); |
||
271 | } |
||
272 | |||
273 | |||
274 | static void GLAPIENTRY |
||
275 | loopback_Color4uiv_f( const GLuint *v) |
||
276 | { |
||
277 | COLORF( UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), |
||
278 | UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3]) ); |
||
279 | } |
||
280 | |||
281 | static void GLAPIENTRY |
||
282 | loopback_Color4usv_f( const GLushort *v) |
||
283 | { |
||
284 | COLORF( USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), |
||
285 | USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3]) ); |
||
286 | } |
||
287 | |||
288 | static void GLAPIENTRY |
||
289 | loopback_Color4ubv_f( const GLubyte *v) |
||
290 | { |
||
291 | COLORF( UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), |
||
292 | UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3]) ); |
||
293 | } |
||
294 | |||
295 | |||
296 | static void GLAPIENTRY |
||
297 | loopback_FogCoorddEXT( GLdouble d ) |
||
298 | { |
||
299 | FOGCOORDF( (GLfloat) d ); |
||
300 | } |
||
301 | |||
302 | static void GLAPIENTRY |
||
303 | loopback_FogCoorddvEXT( const GLdouble *v ) |
||
304 | { |
||
305 | FOGCOORDF( (GLfloat) *v ); |
||
306 | } |
||
307 | |||
308 | |||
309 | static void GLAPIENTRY |
||
310 | loopback_Indexd( GLdouble c ) |
||
311 | { |
||
312 | INDEX( (GLfloat) c ); |
||
313 | } |
||
314 | |||
315 | static void GLAPIENTRY |
||
316 | loopback_Indexi( GLint c ) |
||
317 | { |
||
318 | INDEX( (GLfloat) c ); |
||
319 | } |
||
320 | |||
321 | static void GLAPIENTRY |
||
322 | loopback_Indexs( GLshort c ) |
||
323 | { |
||
324 | INDEX( (GLfloat) c ); |
||
325 | } |
||
326 | |||
327 | static void GLAPIENTRY |
||
328 | loopback_Indexub( GLubyte c ) |
||
329 | { |
||
330 | INDEX( (GLfloat) c ); |
||
331 | } |
||
332 | |||
333 | static void GLAPIENTRY |
||
334 | loopback_Indexdv( const GLdouble *c ) |
||
335 | { |
||
336 | INDEX( (GLfloat) *c ); |
||
337 | } |
||
338 | |||
339 | static void GLAPIENTRY |
||
340 | loopback_Indexiv( const GLint *c ) |
||
341 | { |
||
342 | INDEX( (GLfloat) *c ); |
||
343 | } |
||
344 | |||
345 | static void GLAPIENTRY |
||
346 | loopback_Indexsv( const GLshort *c ) |
||
347 | { |
||
348 | INDEX( (GLfloat) *c ); |
||
349 | } |
||
350 | |||
351 | static void GLAPIENTRY |
||
352 | loopback_Indexubv( const GLubyte *c ) |
||
353 | { |
||
354 | INDEX( (GLfloat) *c ); |
||
355 | } |
||
356 | |||
357 | |||
358 | static void GLAPIENTRY |
||
359 | loopback_EdgeFlagv(const GLboolean *flag) |
||
360 | { |
||
361 | CALL_EdgeFlag(GET_DISPATCH(), (*flag)); |
||
362 | } |
||
363 | |||
364 | |||
365 | static void GLAPIENTRY |
||
366 | loopback_Normal3b( GLbyte nx, GLbyte ny, GLbyte nz ) |
||
367 | { |
||
368 | NORMAL( BYTE_TO_FLOAT(nx), BYTE_TO_FLOAT(ny), BYTE_TO_FLOAT(nz) ); |
||
369 | } |
||
370 | |||
371 | static void GLAPIENTRY |
||
372 | loopback_Normal3d( GLdouble nx, GLdouble ny, GLdouble nz ) |
||
373 | { |
||
374 | NORMAL((GLfloat) nx, (GLfloat) ny, (GLfloat) nz); |
||
375 | } |
||
376 | |||
377 | static void GLAPIENTRY |
||
378 | loopback_Normal3i( GLint nx, GLint ny, GLint nz ) |
||
379 | { |
||
380 | NORMAL( INT_TO_FLOAT(nx), INT_TO_FLOAT(ny), INT_TO_FLOAT(nz) ); |
||
381 | } |
||
382 | |||
383 | static void GLAPIENTRY |
||
384 | loopback_Normal3s( GLshort nx, GLshort ny, GLshort nz ) |
||
385 | { |
||
386 | NORMAL( SHORT_TO_FLOAT(nx), SHORT_TO_FLOAT(ny), SHORT_TO_FLOAT(nz) ); |
||
387 | } |
||
388 | |||
389 | static void GLAPIENTRY |
||
390 | loopback_Normal3bv( const GLbyte *v ) |
||
391 | { |
||
392 | NORMAL( BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), BYTE_TO_FLOAT(v[2]) ); |
||
393 | } |
||
394 | |||
395 | static void GLAPIENTRY |
||
396 | loopback_Normal3dv( const GLdouble *v ) |
||
397 | { |
||
398 | NORMAL( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
399 | } |
||
400 | |||
401 | static void GLAPIENTRY |
||
402 | loopback_Normal3iv( const GLint *v ) |
||
403 | { |
||
404 | NORMAL( INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), INT_TO_FLOAT(v[2]) ); |
||
405 | } |
||
406 | |||
407 | static void GLAPIENTRY |
||
408 | loopback_Normal3sv( const GLshort *v ) |
||
409 | { |
||
410 | NORMAL( SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), SHORT_TO_FLOAT(v[2]) ); |
||
411 | } |
||
412 | |||
413 | static void GLAPIENTRY |
||
414 | loopback_TexCoord1d( GLdouble s ) |
||
415 | { |
||
416 | TEXCOORD1((GLfloat) s); |
||
417 | } |
||
418 | |||
419 | static void GLAPIENTRY |
||
420 | loopback_TexCoord1i( GLint s ) |
||
421 | { |
||
422 | TEXCOORD1((GLfloat) s); |
||
423 | } |
||
424 | |||
425 | static void GLAPIENTRY |
||
426 | loopback_TexCoord1s( GLshort s ) |
||
427 | { |
||
428 | TEXCOORD1((GLfloat) s); |
||
429 | } |
||
430 | |||
431 | static void GLAPIENTRY |
||
432 | loopback_TexCoord2d( GLdouble s, GLdouble t ) |
||
433 | { |
||
434 | TEXCOORD2((GLfloat) s,(GLfloat) t); |
||
435 | } |
||
436 | |||
437 | static void GLAPIENTRY |
||
438 | loopback_TexCoord2s( GLshort s, GLshort t ) |
||
439 | { |
||
440 | TEXCOORD2((GLfloat) s,(GLfloat) t); |
||
441 | } |
||
442 | |||
443 | static void GLAPIENTRY |
||
444 | loopback_TexCoord2i( GLint s, GLint t ) |
||
445 | { |
||
446 | TEXCOORD2((GLfloat) s,(GLfloat) t); |
||
447 | } |
||
448 | |||
449 | static void GLAPIENTRY |
||
450 | loopback_TexCoord3d( GLdouble s, GLdouble t, GLdouble r ) |
||
451 | { |
||
452 | TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); |
||
453 | } |
||
454 | |||
455 | static void GLAPIENTRY |
||
456 | loopback_TexCoord3i( GLint s, GLint t, GLint r ) |
||
457 | { |
||
458 | TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); |
||
459 | } |
||
460 | |||
461 | static void GLAPIENTRY |
||
462 | loopback_TexCoord3s( GLshort s, GLshort t, GLshort r ) |
||
463 | { |
||
464 | TEXCOORD3((GLfloat) s,(GLfloat) t,(GLfloat) r); |
||
465 | } |
||
466 | |||
467 | static void GLAPIENTRY |
||
468 | loopback_TexCoord4d( GLdouble s, GLdouble t, GLdouble r, GLdouble q ) |
||
469 | { |
||
470 | TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); |
||
471 | } |
||
472 | |||
473 | static void GLAPIENTRY |
||
474 | loopback_TexCoord4i( GLint s, GLint t, GLint r, GLint q ) |
||
475 | { |
||
476 | TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); |
||
477 | } |
||
478 | |||
479 | static void GLAPIENTRY |
||
480 | loopback_TexCoord4s( GLshort s, GLshort t, GLshort r, GLshort q ) |
||
481 | { |
||
482 | TEXCOORD4((GLfloat) s,(GLfloat) t,(GLfloat) r,(GLfloat) q); |
||
483 | } |
||
484 | |||
485 | static void GLAPIENTRY |
||
486 | loopback_TexCoord1dv( const GLdouble *v ) |
||
487 | { |
||
488 | TEXCOORD1((GLfloat) v[0]); |
||
489 | } |
||
490 | |||
491 | static void GLAPIENTRY |
||
492 | loopback_TexCoord1iv( const GLint *v ) |
||
493 | { |
||
494 | TEXCOORD1((GLfloat) v[0]); |
||
495 | } |
||
496 | |||
497 | static void GLAPIENTRY |
||
498 | loopback_TexCoord1sv( const GLshort *v ) |
||
499 | { |
||
500 | TEXCOORD1((GLfloat) v[0]); |
||
501 | } |
||
502 | |||
503 | static void GLAPIENTRY |
||
504 | loopback_TexCoord2dv( const GLdouble *v ) |
||
505 | { |
||
506 | TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); |
||
507 | } |
||
508 | |||
509 | static void GLAPIENTRY |
||
510 | loopback_TexCoord2iv( const GLint *v ) |
||
511 | { |
||
512 | TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); |
||
513 | } |
||
514 | |||
515 | static void GLAPIENTRY |
||
516 | loopback_TexCoord2sv( const GLshort *v ) |
||
517 | { |
||
518 | TEXCOORD2((GLfloat) v[0],(GLfloat) v[1]); |
||
519 | } |
||
520 | |||
521 | static void GLAPIENTRY |
||
522 | loopback_TexCoord3dv( const GLdouble *v ) |
||
523 | { |
||
524 | TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); |
||
525 | } |
||
526 | |||
527 | static void GLAPIENTRY |
||
528 | loopback_TexCoord3iv( const GLint *v ) |
||
529 | { |
||
530 | TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); |
||
531 | } |
||
532 | |||
533 | static void GLAPIENTRY |
||
534 | loopback_TexCoord3sv( const GLshort *v ) |
||
535 | { |
||
536 | TEXCOORD3((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2]); |
||
537 | } |
||
538 | |||
539 | static void GLAPIENTRY |
||
540 | loopback_TexCoord4dv( const GLdouble *v ) |
||
541 | { |
||
542 | TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); |
||
543 | } |
||
544 | |||
545 | static void GLAPIENTRY |
||
546 | loopback_TexCoord4iv( const GLint *v ) |
||
547 | { |
||
548 | TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); |
||
549 | } |
||
550 | |||
551 | static void GLAPIENTRY |
||
552 | loopback_TexCoord4sv( const GLshort *v ) |
||
553 | { |
||
554 | TEXCOORD4((GLfloat) v[0],(GLfloat) v[1],(GLfloat) v[2],(GLfloat) v[3]); |
||
555 | } |
||
556 | |||
557 | static void GLAPIENTRY |
||
558 | loopback_Vertex2d( GLdouble x, GLdouble y ) |
||
559 | { |
||
560 | VERTEX2( (GLfloat) x, (GLfloat) y ); |
||
561 | } |
||
562 | |||
563 | static void GLAPIENTRY |
||
564 | loopback_Vertex2i( GLint x, GLint y ) |
||
565 | { |
||
566 | VERTEX2( (GLfloat) x, (GLfloat) y ); |
||
567 | } |
||
568 | |||
569 | static void GLAPIENTRY |
||
570 | loopback_Vertex2s( GLshort x, GLshort y ) |
||
571 | { |
||
572 | VERTEX2( (GLfloat) x, (GLfloat) y ); |
||
573 | } |
||
574 | |||
575 | static void GLAPIENTRY |
||
576 | loopback_Vertex3d( GLdouble x, GLdouble y, GLdouble z ) |
||
577 | { |
||
578 | VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); |
||
579 | } |
||
580 | |||
581 | static void GLAPIENTRY |
||
582 | loopback_Vertex3i( GLint x, GLint y, GLint z ) |
||
583 | { |
||
584 | VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); |
||
585 | } |
||
586 | |||
587 | static void GLAPIENTRY |
||
588 | loopback_Vertex3s( GLshort x, GLshort y, GLshort z ) |
||
589 | { |
||
590 | VERTEX3( (GLfloat) x, (GLfloat) y, (GLfloat) z ); |
||
591 | } |
||
592 | |||
593 | static void GLAPIENTRY |
||
594 | loopback_Vertex4d( GLdouble x, GLdouble y, GLdouble z, GLdouble w ) |
||
595 | { |
||
596 | VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); |
||
597 | } |
||
598 | |||
599 | static void GLAPIENTRY |
||
600 | loopback_Vertex4i( GLint x, GLint y, GLint z, GLint w ) |
||
601 | { |
||
602 | VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); |
||
603 | } |
||
604 | |||
605 | static void GLAPIENTRY |
||
606 | loopback_Vertex4s( GLshort x, GLshort y, GLshort z, GLshort w ) |
||
607 | { |
||
608 | VERTEX4( (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w ); |
||
609 | } |
||
610 | |||
611 | static void GLAPIENTRY |
||
612 | loopback_Vertex2dv( const GLdouble *v ) |
||
613 | { |
||
614 | VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); |
||
615 | } |
||
616 | |||
617 | static void GLAPIENTRY |
||
618 | loopback_Vertex2iv( const GLint *v ) |
||
619 | { |
||
620 | VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); |
||
621 | } |
||
622 | |||
623 | static void GLAPIENTRY |
||
624 | loopback_Vertex2sv( const GLshort *v ) |
||
625 | { |
||
626 | VERTEX2( (GLfloat) v[0], (GLfloat) v[1] ); |
||
627 | } |
||
628 | |||
629 | static void GLAPIENTRY |
||
630 | loopback_Vertex3dv( const GLdouble *v ) |
||
631 | { |
||
632 | VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
633 | } |
||
634 | |||
635 | static void GLAPIENTRY |
||
636 | loopback_Vertex3iv( const GLint *v ) |
||
637 | { |
||
638 | VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
639 | } |
||
640 | |||
641 | static void GLAPIENTRY |
||
642 | loopback_Vertex3sv( const GLshort *v ) |
||
643 | { |
||
644 | VERTEX3( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
645 | } |
||
646 | |||
647 | static void GLAPIENTRY |
||
648 | loopback_Vertex4dv( const GLdouble *v ) |
||
649 | { |
||
650 | VERTEX4( (GLfloat) v[0], (GLfloat) v[1], |
||
651 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
652 | } |
||
653 | |||
654 | static void GLAPIENTRY |
||
655 | loopback_Vertex4iv( const GLint *v ) |
||
656 | { |
||
657 | VERTEX4( (GLfloat) v[0], (GLfloat) v[1], |
||
658 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
659 | } |
||
660 | |||
661 | static void GLAPIENTRY |
||
662 | loopback_Vertex4sv( const GLshort *v ) |
||
663 | { |
||
664 | VERTEX4( (GLfloat) v[0], (GLfloat) v[1], |
||
665 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
666 | } |
||
667 | |||
668 | static void GLAPIENTRY |
||
669 | loopback_MultiTexCoord1dARB(GLenum target, GLdouble s) |
||
670 | { |
||
671 | MULTI_TEXCOORD1( target, (GLfloat) s ); |
||
672 | } |
||
673 | |||
674 | static void GLAPIENTRY |
||
675 | loopback_MultiTexCoord1dvARB(GLenum target, const GLdouble *v) |
||
676 | { |
||
677 | MULTI_TEXCOORD1( target, (GLfloat) v[0] ); |
||
678 | } |
||
679 | |||
680 | static void GLAPIENTRY |
||
681 | loopback_MultiTexCoord1iARB(GLenum target, GLint s) |
||
682 | { |
||
683 | MULTI_TEXCOORD1( target, (GLfloat) s ); |
||
684 | } |
||
685 | |||
686 | static void GLAPIENTRY |
||
687 | loopback_MultiTexCoord1ivARB(GLenum target, const GLint *v) |
||
688 | { |
||
689 | MULTI_TEXCOORD1( target, (GLfloat) v[0] ); |
||
690 | } |
||
691 | |||
692 | static void GLAPIENTRY |
||
693 | loopback_MultiTexCoord1sARB(GLenum target, GLshort s) |
||
694 | { |
||
695 | MULTI_TEXCOORD1( target, (GLfloat) s ); |
||
696 | } |
||
697 | |||
698 | static void GLAPIENTRY |
||
699 | loopback_MultiTexCoord1svARB(GLenum target, const GLshort *v) |
||
700 | { |
||
701 | MULTI_TEXCOORD1( target, (GLfloat) v[0] ); |
||
702 | } |
||
703 | |||
704 | static void GLAPIENTRY |
||
705 | loopback_MultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t) |
||
706 | { |
||
707 | MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); |
||
708 | } |
||
709 | |||
710 | static void GLAPIENTRY |
||
711 | loopback_MultiTexCoord2dvARB(GLenum target, const GLdouble *v) |
||
712 | { |
||
713 | MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); |
||
714 | } |
||
715 | |||
716 | static void GLAPIENTRY |
||
717 | loopback_MultiTexCoord2iARB(GLenum target, GLint s, GLint t) |
||
718 | { |
||
719 | MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); |
||
720 | } |
||
721 | |||
722 | static void GLAPIENTRY |
||
723 | loopback_MultiTexCoord2ivARB(GLenum target, const GLint *v) |
||
724 | { |
||
725 | MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); |
||
726 | } |
||
727 | |||
728 | static void GLAPIENTRY |
||
729 | loopback_MultiTexCoord2sARB(GLenum target, GLshort s, GLshort t) |
||
730 | { |
||
731 | MULTI_TEXCOORD2( target, (GLfloat) s, (GLfloat) t ); |
||
732 | } |
||
733 | |||
734 | static void GLAPIENTRY |
||
735 | loopback_MultiTexCoord2svARB(GLenum target, const GLshort *v) |
||
736 | { |
||
737 | MULTI_TEXCOORD2( target, (GLfloat) v[0], (GLfloat) v[1] ); |
||
738 | } |
||
739 | |||
740 | static void GLAPIENTRY |
||
741 | loopback_MultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r) |
||
742 | { |
||
743 | MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); |
||
744 | } |
||
745 | |||
746 | static void GLAPIENTRY |
||
747 | loopback_MultiTexCoord3dvARB(GLenum target, const GLdouble *v) |
||
748 | { |
||
749 | MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
750 | } |
||
751 | |||
752 | static void GLAPIENTRY |
||
753 | loopback_MultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r) |
||
754 | { |
||
755 | MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); |
||
756 | } |
||
757 | |||
758 | static void GLAPIENTRY |
||
759 | loopback_MultiTexCoord3ivARB(GLenum target, const GLint *v) |
||
760 | { |
||
761 | MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
762 | } |
||
763 | |||
764 | static void GLAPIENTRY |
||
765 | loopback_MultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r) |
||
766 | { |
||
767 | MULTI_TEXCOORD3( target, (GLfloat) s, (GLfloat) t, (GLfloat) r ); |
||
768 | } |
||
769 | |||
770 | static void GLAPIENTRY |
||
771 | loopback_MultiTexCoord3svARB(GLenum target, const GLshort *v) |
||
772 | { |
||
773 | MULTI_TEXCOORD3( target, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
774 | } |
||
775 | |||
776 | static void GLAPIENTRY |
||
777 | loopback_MultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q) |
||
778 | { |
||
779 | MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, |
||
780 | (GLfloat) r, (GLfloat) q ); |
||
781 | } |
||
782 | |||
783 | static void GLAPIENTRY |
||
784 | loopback_MultiTexCoord4dvARB(GLenum target, const GLdouble *v) |
||
785 | { |
||
786 | MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], |
||
787 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
788 | } |
||
789 | |||
790 | static void GLAPIENTRY |
||
791 | loopback_MultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q) |
||
792 | { |
||
793 | MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, |
||
794 | (GLfloat) r, (GLfloat) q ); |
||
795 | } |
||
796 | |||
797 | static void GLAPIENTRY |
||
798 | loopback_MultiTexCoord4ivARB(GLenum target, const GLint *v) |
||
799 | { |
||
800 | MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], |
||
801 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
802 | } |
||
803 | |||
804 | static void GLAPIENTRY |
||
805 | loopback_MultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q) |
||
806 | { |
||
807 | MULTI_TEXCOORD4( target, (GLfloat) s, (GLfloat) t, |
||
808 | (GLfloat) r, (GLfloat) q ); |
||
809 | } |
||
810 | |||
811 | static void GLAPIENTRY |
||
812 | loopback_MultiTexCoord4svARB(GLenum target, const GLshort *v) |
||
813 | { |
||
814 | MULTI_TEXCOORD4( target, (GLfloat) v[0], (GLfloat) v[1], |
||
815 | (GLfloat) v[2], (GLfloat) v[3] ); |
||
816 | } |
||
817 | |||
818 | static void GLAPIENTRY |
||
819 | loopback_EvalCoord2dv( const GLdouble *u ) |
||
820 | { |
||
821 | EVALCOORD2( (GLfloat) u[0], (GLfloat) u[1] ); |
||
822 | } |
||
823 | |||
824 | static void GLAPIENTRY |
||
825 | loopback_EvalCoord2fv( const GLfloat *u ) |
||
826 | { |
||
827 | EVALCOORD2( u[0], u[1] ); |
||
828 | } |
||
829 | |||
830 | static void GLAPIENTRY |
||
831 | loopback_EvalCoord2d( GLdouble u, GLdouble v ) |
||
832 | { |
||
833 | EVALCOORD2( (GLfloat) u, (GLfloat) v ); |
||
834 | } |
||
835 | |||
836 | static void GLAPIENTRY |
||
837 | loopback_EvalCoord1dv( const GLdouble *u ) |
||
838 | { |
||
839 | EVALCOORD1( (GLfloat) *u ); |
||
840 | } |
||
841 | |||
842 | static void GLAPIENTRY |
||
843 | loopback_EvalCoord1fv( const GLfloat *u ) |
||
844 | { |
||
845 | EVALCOORD1( (GLfloat) *u ); |
||
846 | } |
||
847 | |||
848 | static void GLAPIENTRY |
||
849 | loopback_EvalCoord1d( GLdouble u ) |
||
850 | { |
||
851 | EVALCOORD1( (GLfloat) u ); |
||
852 | } |
||
853 | |||
854 | static void GLAPIENTRY |
||
855 | loopback_Materialf( GLenum face, GLenum pname, GLfloat param ) |
||
856 | { |
||
857 | GLfloat fparam[4]; |
||
858 | fparam[0] = param; |
||
859 | MATERIALFV( face, pname, fparam ); |
||
860 | } |
||
861 | |||
862 | static void GLAPIENTRY |
||
863 | loopback_Materiali(GLenum face, GLenum pname, GLint param ) |
||
864 | { |
||
865 | GLfloat p = (GLfloat) param; |
||
866 | MATERIALFV(face, pname, &p); |
||
867 | } |
||
868 | |||
869 | static void GLAPIENTRY |
||
870 | loopback_Materialiv(GLenum face, GLenum pname, const GLint *params ) |
||
871 | { |
||
872 | GLfloat fparam[4]; |
||
873 | switch (pname) { |
||
874 | case GL_AMBIENT: |
||
875 | case GL_DIFFUSE: |
||
876 | case GL_SPECULAR: |
||
877 | case GL_EMISSION: |
||
878 | case GL_AMBIENT_AND_DIFFUSE: |
||
879 | fparam[0] = INT_TO_FLOAT( params[0] ); |
||
880 | fparam[1] = INT_TO_FLOAT( params[1] ); |
||
881 | fparam[2] = INT_TO_FLOAT( params[2] ); |
||
882 | fparam[3] = INT_TO_FLOAT( params[3] ); |
||
883 | break; |
||
884 | case GL_SHININESS: |
||
885 | fparam[0] = (GLfloat) params[0]; |
||
886 | break; |
||
887 | case GL_COLOR_INDEXES: |
||
888 | fparam[0] = (GLfloat) params[0]; |
||
889 | fparam[1] = (GLfloat) params[1]; |
||
890 | fparam[2] = (GLfloat) params[2]; |
||
891 | break; |
||
892 | default: |
||
893 | ; |
||
894 | } |
||
895 | MATERIALFV(face, pname, fparam); |
||
896 | } |
||
897 | |||
898 | |||
899 | static void GLAPIENTRY |
||
900 | loopback_Rectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) |
||
901 | { |
||
902 | RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); |
||
903 | } |
||
904 | |||
905 | static void GLAPIENTRY |
||
906 | loopback_Rectdv(const GLdouble *v1, const GLdouble *v2) |
||
907 | { |
||
908 | RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); |
||
909 | } |
||
910 | |||
911 | static void GLAPIENTRY |
||
912 | loopback_Rectfv(const GLfloat *v1, const GLfloat *v2) |
||
913 | { |
||
914 | RECTF(v1[0], v1[1], v2[0], v2[1]); |
||
915 | } |
||
916 | |||
917 | static void GLAPIENTRY |
||
918 | loopback_Recti(GLint x1, GLint y1, GLint x2, GLint y2) |
||
919 | { |
||
920 | RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); |
||
921 | } |
||
922 | |||
923 | static void GLAPIENTRY |
||
924 | loopback_Rectiv(const GLint *v1, const GLint *v2) |
||
925 | { |
||
926 | RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); |
||
927 | } |
||
928 | |||
929 | static void GLAPIENTRY |
||
930 | loopback_Rects(GLshort x1, GLshort y1, GLshort x2, GLshort y2) |
||
931 | { |
||
932 | RECTF((GLfloat) x1, (GLfloat) y1, (GLfloat) x2, (GLfloat) y2); |
||
933 | } |
||
934 | |||
935 | static void GLAPIENTRY |
||
936 | loopback_Rectsv(const GLshort *v1, const GLshort *v2) |
||
937 | { |
||
938 | RECTF((GLfloat) v1[0], (GLfloat) v1[1], (GLfloat) v2[0], (GLfloat) v2[1]); |
||
939 | } |
||
940 | |||
941 | static void GLAPIENTRY |
||
942 | loopback_SecondaryColor3bEXT_f( GLbyte red, GLbyte green, GLbyte blue ) |
||
943 | { |
||
944 | SECONDARYCOLORF( BYTE_TO_FLOAT(red), |
||
945 | BYTE_TO_FLOAT(green), |
||
946 | BYTE_TO_FLOAT(blue) ); |
||
947 | } |
||
948 | |||
949 | static void GLAPIENTRY |
||
950 | loopback_SecondaryColor3dEXT_f( GLdouble red, GLdouble green, GLdouble blue ) |
||
951 | { |
||
952 | SECONDARYCOLORF( (GLfloat) red, (GLfloat) green, (GLfloat) blue ); |
||
953 | } |
||
954 | |||
955 | static void GLAPIENTRY |
||
956 | loopback_SecondaryColor3iEXT_f( GLint red, GLint green, GLint blue ) |
||
957 | { |
||
958 | SECONDARYCOLORF( INT_TO_FLOAT(red), |
||
959 | INT_TO_FLOAT(green), |
||
960 | INT_TO_FLOAT(blue)); |
||
961 | } |
||
962 | |||
963 | static void GLAPIENTRY |
||
964 | loopback_SecondaryColor3sEXT_f( GLshort red, GLshort green, GLshort blue ) |
||
965 | { |
||
966 | SECONDARYCOLORF(SHORT_TO_FLOAT(red), |
||
967 | SHORT_TO_FLOAT(green), |
||
968 | SHORT_TO_FLOAT(blue)); |
||
969 | } |
||
970 | |||
971 | static void GLAPIENTRY |
||
972 | loopback_SecondaryColor3uiEXT_f( GLuint red, GLuint green, GLuint blue ) |
||
973 | { |
||
974 | SECONDARYCOLORF(UINT_TO_FLOAT(red), |
||
975 | UINT_TO_FLOAT(green), |
||
976 | UINT_TO_FLOAT(blue)); |
||
977 | } |
||
978 | |||
979 | static void GLAPIENTRY |
||
980 | loopback_SecondaryColor3usEXT_f( GLushort red, GLushort green, GLushort blue ) |
||
981 | { |
||
982 | SECONDARYCOLORF(USHORT_TO_FLOAT(red), |
||
983 | USHORT_TO_FLOAT(green), |
||
984 | USHORT_TO_FLOAT(blue)); |
||
985 | } |
||
986 | |||
987 | static void GLAPIENTRY |
||
988 | loopback_SecondaryColor3ubEXT_f( GLubyte red, GLubyte green, GLubyte blue ) |
||
989 | { |
||
990 | SECONDARYCOLORF(UBYTE_TO_FLOAT(red), |
||
991 | UBYTE_TO_FLOAT(green), |
||
992 | UBYTE_TO_FLOAT(blue)); |
||
993 | } |
||
994 | |||
995 | static void GLAPIENTRY |
||
996 | loopback_SecondaryColor3bvEXT_f( const GLbyte *v ) |
||
997 | { |
||
998 | SECONDARYCOLORF(BYTE_TO_FLOAT(v[0]), |
||
999 | BYTE_TO_FLOAT(v[1]), |
||
1000 | BYTE_TO_FLOAT(v[2])); |
||
1001 | } |
||
1002 | |||
1003 | static void GLAPIENTRY |
||
1004 | loopback_SecondaryColor3dvEXT_f( const GLdouble *v ) |
||
1005 | { |
||
1006 | SECONDARYCOLORF( (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2] ); |
||
1007 | } |
||
1008 | static void GLAPIENTRY |
||
1009 | loopback_SecondaryColor3ivEXT_f( const GLint *v ) |
||
1010 | { |
||
1011 | SECONDARYCOLORF(INT_TO_FLOAT(v[0]), |
||
1012 | INT_TO_FLOAT(v[1]), |
||
1013 | INT_TO_FLOAT(v[2])); |
||
1014 | } |
||
1015 | |||
1016 | static void GLAPIENTRY |
||
1017 | loopback_SecondaryColor3svEXT_f( const GLshort *v ) |
||
1018 | { |
||
1019 | SECONDARYCOLORF(SHORT_TO_FLOAT(v[0]), |
||
1020 | SHORT_TO_FLOAT(v[1]), |
||
1021 | SHORT_TO_FLOAT(v[2])); |
||
1022 | } |
||
1023 | |||
1024 | static void GLAPIENTRY |
||
1025 | loopback_SecondaryColor3uivEXT_f( const GLuint *v ) |
||
1026 | { |
||
1027 | SECONDARYCOLORF(UINT_TO_FLOAT(v[0]), |
||
1028 | UINT_TO_FLOAT(v[1]), |
||
1029 | UINT_TO_FLOAT(v[2])); |
||
1030 | } |
||
1031 | |||
1032 | static void GLAPIENTRY |
||
1033 | loopback_SecondaryColor3usvEXT_f( const GLushort *v ) |
||
1034 | { |
||
1035 | SECONDARYCOLORF(USHORT_TO_FLOAT(v[0]), |
||
1036 | USHORT_TO_FLOAT(v[1]), |
||
1037 | USHORT_TO_FLOAT(v[2])); |
||
1038 | } |
||
1039 | |||
1040 | static void GLAPIENTRY |
||
1041 | loopback_SecondaryColor3ubvEXT_f( const GLubyte *v ) |
||
1042 | { |
||
1043 | SECONDARYCOLORF(UBYTE_TO_FLOAT(v[0]), |
||
1044 | UBYTE_TO_FLOAT(v[1]), |
||
1045 | UBYTE_TO_FLOAT(v[2])); |
||
1046 | } |
||
1047 | |||
1048 | |||
1049 | /* |
||
1050 | * GL_NV_vertex_program: |
||
1051 | * Always loop-back to one of the VertexAttrib[1234]f[v]NV functions. |
||
1052 | * Note that attribute indexes DO alias conventional vertex attributes. |
||
1053 | */ |
||
1054 | |||
1055 | static void GLAPIENTRY |
||
1056 | loopback_VertexAttrib1sNV(GLuint index, GLshort x) |
||
1057 | { |
||
1058 | ATTRIB1NV(index, (GLfloat) x); |
||
1059 | } |
||
1060 | |||
1061 | static void GLAPIENTRY |
||
1062 | loopback_VertexAttrib1dNV(GLuint index, GLdouble x) |
||
1063 | { |
||
1064 | ATTRIB1NV(index, (GLfloat) x); |
||
1065 | } |
||
1066 | |||
1067 | static void GLAPIENTRY |
||
1068 | loopback_VertexAttrib2sNV(GLuint index, GLshort x, GLshort y) |
||
1069 | { |
||
1070 | ATTRIB2NV(index, (GLfloat) x, y); |
||
1071 | } |
||
1072 | |||
1073 | static void GLAPIENTRY |
||
1074 | loopback_VertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y) |
||
1075 | { |
||
1076 | ATTRIB2NV(index, (GLfloat) x, (GLfloat) y); |
||
1077 | } |
||
1078 | |||
1079 | static void GLAPIENTRY |
||
1080 | loopback_VertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z) |
||
1081 | { |
||
1082 | ATTRIB3NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); |
||
1083 | } |
||
1084 | |||
1085 | static void GLAPIENTRY |
||
1086 | loopback_VertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z) |
||
1087 | { |
||
1088 | ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); |
||
1089 | } |
||
1090 | |||
1091 | static void GLAPIENTRY |
||
1092 | loopback_VertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) |
||
1093 | { |
||
1094 | ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); |
||
1095 | } |
||
1096 | |||
1097 | static void GLAPIENTRY |
||
1098 | loopback_VertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) |
||
1099 | { |
||
1100 | ATTRIB4NV(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); |
||
1101 | } |
||
1102 | |||
1103 | static void GLAPIENTRY |
||
1104 | loopback_VertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) |
||
1105 | { |
||
1106 | ATTRIB4NV(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), |
||
1107 | UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); |
||
1108 | } |
||
1109 | |||
1110 | static void GLAPIENTRY |
||
1111 | loopback_VertexAttrib1svNV(GLuint index, const GLshort *v) |
||
1112 | { |
||
1113 | ATTRIB1NV(index, (GLfloat) v[0]); |
||
1114 | } |
||
1115 | |||
1116 | static void GLAPIENTRY |
||
1117 | loopback_VertexAttrib1dvNV(GLuint index, const GLdouble *v) |
||
1118 | { |
||
1119 | ATTRIB1NV(index, (GLfloat) v[0]); |
||
1120 | } |
||
1121 | |||
1122 | static void GLAPIENTRY |
||
1123 | loopback_VertexAttrib2svNV(GLuint index, const GLshort *v) |
||
1124 | { |
||
1125 | ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); |
||
1126 | } |
||
1127 | |||
1128 | static void GLAPIENTRY |
||
1129 | loopback_VertexAttrib2dvNV(GLuint index, const GLdouble *v) |
||
1130 | { |
||
1131 | ATTRIB2NV(index, (GLfloat) v[0], (GLfloat) v[1]); |
||
1132 | } |
||
1133 | |||
1134 | static void GLAPIENTRY |
||
1135 | loopback_VertexAttrib3svNV(GLuint index, const GLshort *v) |
||
1136 | { |
||
1137 | ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); |
||
1138 | } |
||
1139 | |||
1140 | static void GLAPIENTRY |
||
1141 | loopback_VertexAttrib3dvNV(GLuint index, const GLdouble *v) |
||
1142 | { |
||
1143 | ATTRIB3NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); |
||
1144 | } |
||
1145 | |||
1146 | static void GLAPIENTRY |
||
1147 | loopback_VertexAttrib4svNV(GLuint index, const GLshort *v) |
||
1148 | { |
||
1149 | ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], |
||
1150 | (GLfloat)v[3]); |
||
1151 | } |
||
1152 | |||
1153 | static void GLAPIENTRY |
||
1154 | loopback_VertexAttrib4dvNV(GLuint index, const GLdouble *v) |
||
1155 | { |
||
1156 | ATTRIB4NV(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1157 | } |
||
1158 | |||
1159 | static void GLAPIENTRY |
||
1160 | loopback_VertexAttrib4ubvNV(GLuint index, const GLubyte *v) |
||
1161 | { |
||
1162 | ATTRIB4NV(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), |
||
1163 | UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); |
||
1164 | } |
||
1165 | |||
1166 | |||
1167 | static void GLAPIENTRY |
||
1168 | loopback_VertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v) |
||
1169 | { |
||
1170 | GLint i; |
||
1171 | for (i = n - 1; i >= 0; i--) |
||
1172 | loopback_VertexAttrib1svNV(index + i, v + i); |
||
1173 | } |
||
1174 | |||
1175 | static void GLAPIENTRY |
||
1176 | loopback_VertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v) |
||
1177 | { |
||
1178 | GLint i; |
||
1179 | for (i = n - 1; i >= 0; i--) |
||
1180 | ATTRIB1NV(index + i, v[i]); |
||
1181 | } |
||
1182 | |||
1183 | static void GLAPIENTRY |
||
1184 | loopback_VertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v) |
||
1185 | { |
||
1186 | GLint i; |
||
1187 | for (i = n - 1; i >= 0; i--) |
||
1188 | loopback_VertexAttrib1dvNV(index + i, v + i); |
||
1189 | } |
||
1190 | |||
1191 | static void GLAPIENTRY |
||
1192 | loopback_VertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v) |
||
1193 | { |
||
1194 | GLint i; |
||
1195 | for (i = n - 1; i >= 0; i--) |
||
1196 | loopback_VertexAttrib2svNV(index + i, v + 2 * i); |
||
1197 | } |
||
1198 | |||
1199 | static void GLAPIENTRY |
||
1200 | loopback_VertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v) |
||
1201 | { |
||
1202 | GLint i; |
||
1203 | for (i = n - 1; i >= 0; i--) |
||
1204 | ATTRIB2NV(index + i, v[2 * i], v[2 * i + 1]); |
||
1205 | } |
||
1206 | |||
1207 | static void GLAPIENTRY |
||
1208 | loopback_VertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v) |
||
1209 | { |
||
1210 | GLint i; |
||
1211 | for (i = n - 1; i >= 0; i--) |
||
1212 | loopback_VertexAttrib2dvNV(index + i, v + 2 * i); |
||
1213 | } |
||
1214 | |||
1215 | static void GLAPIENTRY |
||
1216 | loopback_VertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v) |
||
1217 | { |
||
1218 | GLint i; |
||
1219 | for (i = n - 1; i >= 0; i--) |
||
1220 | loopback_VertexAttrib3svNV(index + i, v + 3 * i); |
||
1221 | } |
||
1222 | |||
1223 | static void GLAPIENTRY |
||
1224 | loopback_VertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v) |
||
1225 | { |
||
1226 | GLint i; |
||
1227 | for (i = n - 1; i >= 0; i--) |
||
1228 | ATTRIB3NV(index + i, v[3 * i], v[3 * i + 1], v[3 * i + 2]); |
||
1229 | } |
||
1230 | |||
1231 | static void GLAPIENTRY |
||
1232 | loopback_VertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v) |
||
1233 | { |
||
1234 | GLint i; |
||
1235 | for (i = n - 1; i >= 0; i--) |
||
1236 | loopback_VertexAttrib3dvNV(index + i, v + 3 * i); |
||
1237 | } |
||
1238 | |||
1239 | static void GLAPIENTRY |
||
1240 | loopback_VertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v) |
||
1241 | { |
||
1242 | GLint i; |
||
1243 | for (i = n - 1; i >= 0; i--) |
||
1244 | loopback_VertexAttrib4svNV(index + i, v + 4 * i); |
||
1245 | } |
||
1246 | |||
1247 | static void GLAPIENTRY |
||
1248 | loopback_VertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v) |
||
1249 | { |
||
1250 | GLint i; |
||
1251 | for (i = n - 1; i >= 0; i--) |
||
1252 | ATTRIB4NV(index + i, v[4 * i], v[4 * i + 1], v[4 * i + 2], v[4 * i + 3]); |
||
1253 | } |
||
1254 | |||
1255 | static void GLAPIENTRY |
||
1256 | loopback_VertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v) |
||
1257 | { |
||
1258 | GLint i; |
||
1259 | for (i = n - 1; i >= 0; i--) |
||
1260 | loopback_VertexAttrib4dvNV(index + i, v + 4 * i); |
||
1261 | } |
||
1262 | |||
1263 | static void GLAPIENTRY |
||
1264 | loopback_VertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v) |
||
1265 | { |
||
1266 | GLint i; |
||
1267 | for (i = n - 1; i >= 0; i--) |
||
1268 | loopback_VertexAttrib4ubvNV(index + i, v + 4 * i); |
||
1269 | } |
||
1270 | |||
1271 | |||
1272 | /* |
||
1273 | * GL_ARB_vertex_program |
||
1274 | * Always loop-back to one of the VertexAttrib[1234]f[v]ARB functions. |
||
1275 | * Note that attribute indexes do NOT alias conventional attributes. |
||
1276 | */ |
||
1277 | |||
1278 | static void GLAPIENTRY |
||
1279 | loopback_VertexAttrib1sARB(GLuint index, GLshort x) |
||
1280 | { |
||
1281 | ATTRIB1ARB(index, (GLfloat) x); |
||
1282 | } |
||
1283 | |||
1284 | static void GLAPIENTRY |
||
1285 | loopback_VertexAttrib1dARB(GLuint index, GLdouble x) |
||
1286 | { |
||
1287 | ATTRIB1ARB(index, (GLfloat) x); |
||
1288 | } |
||
1289 | |||
1290 | static void GLAPIENTRY |
||
1291 | loopback_VertexAttrib2sARB(GLuint index, GLshort x, GLshort y) |
||
1292 | { |
||
1293 | ATTRIB2ARB(index, (GLfloat) x, y); |
||
1294 | } |
||
1295 | |||
1296 | static void GLAPIENTRY |
||
1297 | loopback_VertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y) |
||
1298 | { |
||
1299 | ATTRIB2ARB(index, (GLfloat) x, (GLfloat) y); |
||
1300 | } |
||
1301 | |||
1302 | static void GLAPIENTRY |
||
1303 | loopback_VertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z) |
||
1304 | { |
||
1305 | ATTRIB3ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z); |
||
1306 | } |
||
1307 | |||
1308 | static void GLAPIENTRY |
||
1309 | loopback_VertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z) |
||
1310 | { |
||
1311 | ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, 1.0F); |
||
1312 | } |
||
1313 | |||
1314 | static void GLAPIENTRY |
||
1315 | loopback_VertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w) |
||
1316 | { |
||
1317 | ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); |
||
1318 | } |
||
1319 | |||
1320 | static void GLAPIENTRY |
||
1321 | loopback_VertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w) |
||
1322 | { |
||
1323 | ATTRIB4ARB(index, (GLfloat) x, (GLfloat) y, (GLfloat) z, (GLfloat) w); |
||
1324 | } |
||
1325 | |||
1326 | static void GLAPIENTRY |
||
1327 | loopback_VertexAttrib1svARB(GLuint index, const GLshort *v) |
||
1328 | { |
||
1329 | ATTRIB1ARB(index, (GLfloat) v[0]); |
||
1330 | } |
||
1331 | |||
1332 | static void GLAPIENTRY |
||
1333 | loopback_VertexAttrib1dvARB(GLuint index, const GLdouble *v) |
||
1334 | { |
||
1335 | ATTRIB1ARB(index, (GLfloat) v[0]); |
||
1336 | } |
||
1337 | |||
1338 | static void GLAPIENTRY |
||
1339 | loopback_VertexAttrib2svARB(GLuint index, const GLshort *v) |
||
1340 | { |
||
1341 | ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); |
||
1342 | } |
||
1343 | |||
1344 | static void GLAPIENTRY |
||
1345 | loopback_VertexAttrib2dvARB(GLuint index, const GLdouble *v) |
||
1346 | { |
||
1347 | ATTRIB2ARB(index, (GLfloat) v[0], (GLfloat) v[1]); |
||
1348 | } |
||
1349 | |||
1350 | static void GLAPIENTRY |
||
1351 | loopback_VertexAttrib3svARB(GLuint index, const GLshort *v) |
||
1352 | { |
||
1353 | ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); |
||
1354 | } |
||
1355 | |||
1356 | static void GLAPIENTRY |
||
1357 | loopback_VertexAttrib3dvARB(GLuint index, const GLdouble *v) |
||
1358 | { |
||
1359 | ATTRIB3ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2]); |
||
1360 | } |
||
1361 | |||
1362 | static void GLAPIENTRY |
||
1363 | loopback_VertexAttrib4svARB(GLuint index, const GLshort *v) |
||
1364 | { |
||
1365 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], |
||
1366 | (GLfloat)v[3]); |
||
1367 | } |
||
1368 | |||
1369 | static void GLAPIENTRY |
||
1370 | loopback_VertexAttrib4dvARB(GLuint index, const GLdouble *v) |
||
1371 | { |
||
1372 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1373 | } |
||
1374 | |||
1375 | static void GLAPIENTRY |
||
1376 | loopback_VertexAttrib4bvARB(GLuint index, const GLbyte * v) |
||
1377 | { |
||
1378 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1379 | } |
||
1380 | |||
1381 | static void GLAPIENTRY |
||
1382 | loopback_VertexAttrib4ivARB(GLuint index, const GLint * v) |
||
1383 | { |
||
1384 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1385 | } |
||
1386 | |||
1387 | static void GLAPIENTRY |
||
1388 | loopback_VertexAttrib4ubvARB(GLuint index, const GLubyte * v) |
||
1389 | { |
||
1390 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1391 | } |
||
1392 | |||
1393 | static void GLAPIENTRY |
||
1394 | loopback_VertexAttrib4usvARB(GLuint index, const GLushort * v) |
||
1395 | { |
||
1396 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1397 | } |
||
1398 | |||
1399 | static void GLAPIENTRY |
||
1400 | loopback_VertexAttrib4uivARB(GLuint index, const GLuint * v) |
||
1401 | { |
||
1402 | ATTRIB4ARB(index, (GLfloat) v[0], (GLfloat) v[1], (GLfloat) v[2], (GLfloat) v[3]); |
||
1403 | } |
||
1404 | |||
1405 | static void GLAPIENTRY |
||
1406 | loopback_VertexAttrib4NbvARB(GLuint index, const GLbyte * v) |
||
1407 | { |
||
1408 | ATTRIB4ARB(index, BYTE_TO_FLOAT(v[0]), BYTE_TO_FLOAT(v[1]), |
||
1409 | BYTE_TO_FLOAT(v[2]), BYTE_TO_FLOAT(v[3])); |
||
1410 | } |
||
1411 | |||
1412 | static void GLAPIENTRY |
||
1413 | loopback_VertexAttrib4NsvARB(GLuint index, const GLshort * v) |
||
1414 | { |
||
1415 | ATTRIB4ARB(index, SHORT_TO_FLOAT(v[0]), SHORT_TO_FLOAT(v[1]), |
||
1416 | SHORT_TO_FLOAT(v[2]), SHORT_TO_FLOAT(v[3])); |
||
1417 | } |
||
1418 | |||
1419 | static void GLAPIENTRY |
||
1420 | loopback_VertexAttrib4NivARB(GLuint index, const GLint * v) |
||
1421 | { |
||
1422 | ATTRIB4ARB(index, INT_TO_FLOAT(v[0]), INT_TO_FLOAT(v[1]), |
||
1423 | INT_TO_FLOAT(v[2]), INT_TO_FLOAT(v[3])); |
||
1424 | } |
||
1425 | |||
1426 | static void GLAPIENTRY |
||
1427 | loopback_VertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w) |
||
1428 | { |
||
1429 | ATTRIB4ARB(index, UBYTE_TO_FLOAT(x), UBYTE_TO_FLOAT(y), |
||
1430 | UBYTE_TO_FLOAT(z), UBYTE_TO_FLOAT(w)); |
||
1431 | } |
||
1432 | |||
1433 | static void GLAPIENTRY |
||
1434 | loopback_VertexAttrib4NubvARB(GLuint index, const GLubyte * v) |
||
1435 | { |
||
1436 | ATTRIB4ARB(index, UBYTE_TO_FLOAT(v[0]), UBYTE_TO_FLOAT(v[1]), |
||
1437 | UBYTE_TO_FLOAT(v[2]), UBYTE_TO_FLOAT(v[3])); |
||
1438 | } |
||
1439 | |||
1440 | static void GLAPIENTRY |
||
1441 | loopback_VertexAttrib4NusvARB(GLuint index, const GLushort * v) |
||
1442 | { |
||
1443 | ATTRIB4ARB(index, USHORT_TO_FLOAT(v[0]), USHORT_TO_FLOAT(v[1]), |
||
1444 | USHORT_TO_FLOAT(v[2]), USHORT_TO_FLOAT(v[3])); |
||
1445 | } |
||
1446 | |||
1447 | static void GLAPIENTRY |
||
1448 | loopback_VertexAttrib4NuivARB(GLuint index, const GLuint * v) |
||
1449 | { |
||
1450 | ATTRIB4ARB(index, UINT_TO_FLOAT(v[0]), UINT_TO_FLOAT(v[1]), |
||
1451 | UINT_TO_FLOAT(v[2]), UINT_TO_FLOAT(v[3])); |
||
1452 | } |
||
1453 | |||
1454 | |||
1455 | |||
1456 | /** |
||
1457 | * GL_EXT_gpu_shader / GL 3.0 signed/unsigned integer-valued attributes. |
||
1458 | * Note that attribute indexes do NOT alias conventional attributes. |
||
1459 | */ |
||
1460 | |||
1461 | static void GLAPIENTRY |
||
1462 | loopback_VertexAttribI1iv(GLuint index, const GLint *v) |
||
1463 | { |
||
1464 | ATTRIBI_1I(index, v[0]); |
||
1465 | } |
||
1466 | |||
1467 | static void GLAPIENTRY |
||
1468 | loopback_VertexAttribI1uiv(GLuint index, const GLuint *v) |
||
1469 | { |
||
1470 | ATTRIBI_1UI(index, v[0]); |
||
1471 | } |
||
1472 | |||
1473 | static void GLAPIENTRY |
||
1474 | loopback_VertexAttribI4bv(GLuint index, const GLbyte *v) |
||
1475 | { |
||
1476 | ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); |
||
1477 | } |
||
1478 | |||
1479 | static void GLAPIENTRY |
||
1480 | loopback_VertexAttribI4sv(GLuint index, const GLshort *v) |
||
1481 | { |
||
1482 | ATTRIBI_4I(index, v[0], v[1], v[2], v[3]); |
||
1483 | } |
||
1484 | |||
1485 | static void GLAPIENTRY |
||
1486 | loopback_VertexAttribI4ubv(GLuint index, const GLubyte *v) |
||
1487 | { |
||
1488 | ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); |
||
1489 | } |
||
1490 | |||
1491 | static void GLAPIENTRY |
||
1492 | loopback_VertexAttribI4usv(GLuint index, const GLushort *v) |
||
1493 | { |
||
1494 | ATTRIBI_4UI(index, v[0], v[1], v[2], v[3]); |
||
1495 | } |
||
1496 | |||
1497 | |||
1498 | |||
1499 | |||
1500 | /* |
||
1501 | * This code never registers handlers for any of the entry points |
||
1502 | * listed in vtxfmt.h. |
||
1503 | */ |
||
1504 | void |
||
1505 | _mesa_loopback_init_api_table( struct _glapi_table *dest ) |
||
1506 | { |
||
1507 | SET_Color3b(dest, loopback_Color3b_f); |
||
1508 | SET_Color3d(dest, loopback_Color3d_f); |
||
1509 | SET_Color3i(dest, loopback_Color3i_f); |
||
1510 | SET_Color3s(dest, loopback_Color3s_f); |
||
1511 | SET_Color3ui(dest, loopback_Color3ui_f); |
||
1512 | SET_Color3us(dest, loopback_Color3us_f); |
||
1513 | SET_Color3ub(dest, loopback_Color3ub_f); |
||
1514 | SET_Color4b(dest, loopback_Color4b_f); |
||
1515 | SET_Color4d(dest, loopback_Color4d_f); |
||
1516 | SET_Color4i(dest, loopback_Color4i_f); |
||
1517 | SET_Color4s(dest, loopback_Color4s_f); |
||
1518 | SET_Color4ui(dest, loopback_Color4ui_f); |
||
1519 | SET_Color4us(dest, loopback_Color4us_f); |
||
1520 | SET_Color4ub(dest, loopback_Color4ub_f); |
||
1521 | SET_Color3bv(dest, loopback_Color3bv_f); |
||
1522 | SET_Color3dv(dest, loopback_Color3dv_f); |
||
1523 | SET_Color3iv(dest, loopback_Color3iv_f); |
||
1524 | SET_Color3sv(dest, loopback_Color3sv_f); |
||
1525 | SET_Color3uiv(dest, loopback_Color3uiv_f); |
||
1526 | SET_Color3usv(dest, loopback_Color3usv_f); |
||
1527 | SET_Color3ubv(dest, loopback_Color3ubv_f); |
||
1528 | SET_Color4bv(dest, loopback_Color4bv_f); |
||
1529 | SET_Color4dv(dest, loopback_Color4dv_f); |
||
1530 | SET_Color4iv(dest, loopback_Color4iv_f); |
||
1531 | SET_Color4sv(dest, loopback_Color4sv_f); |
||
1532 | SET_Color4uiv(dest, loopback_Color4uiv_f); |
||
1533 | SET_Color4usv(dest, loopback_Color4usv_f); |
||
1534 | SET_Color4ubv(dest, loopback_Color4ubv_f); |
||
1535 | |||
1536 | SET_SecondaryColor3bEXT(dest, loopback_SecondaryColor3bEXT_f); |
||
1537 | SET_SecondaryColor3dEXT(dest, loopback_SecondaryColor3dEXT_f); |
||
1538 | SET_SecondaryColor3iEXT(dest, loopback_SecondaryColor3iEXT_f); |
||
1539 | SET_SecondaryColor3sEXT(dest, loopback_SecondaryColor3sEXT_f); |
||
1540 | SET_SecondaryColor3uiEXT(dest, loopback_SecondaryColor3uiEXT_f); |
||
1541 | SET_SecondaryColor3usEXT(dest, loopback_SecondaryColor3usEXT_f); |
||
1542 | SET_SecondaryColor3ubEXT(dest, loopback_SecondaryColor3ubEXT_f); |
||
1543 | SET_SecondaryColor3bvEXT(dest, loopback_SecondaryColor3bvEXT_f); |
||
1544 | SET_SecondaryColor3dvEXT(dest, loopback_SecondaryColor3dvEXT_f); |
||
1545 | SET_SecondaryColor3ivEXT(dest, loopback_SecondaryColor3ivEXT_f); |
||
1546 | SET_SecondaryColor3svEXT(dest, loopback_SecondaryColor3svEXT_f); |
||
1547 | SET_SecondaryColor3uivEXT(dest, loopback_SecondaryColor3uivEXT_f); |
||
1548 | SET_SecondaryColor3usvEXT(dest, loopback_SecondaryColor3usvEXT_f); |
||
1549 | SET_SecondaryColor3ubvEXT(dest, loopback_SecondaryColor3ubvEXT_f); |
||
1550 | |||
1551 | SET_EdgeFlagv(dest, loopback_EdgeFlagv); |
||
1552 | |||
1553 | SET_Indexd(dest, loopback_Indexd); |
||
1554 | SET_Indexi(dest, loopback_Indexi); |
||
1555 | SET_Indexs(dest, loopback_Indexs); |
||
1556 | SET_Indexub(dest, loopback_Indexub); |
||
1557 | SET_Indexdv(dest, loopback_Indexdv); |
||
1558 | SET_Indexiv(dest, loopback_Indexiv); |
||
1559 | SET_Indexsv(dest, loopback_Indexsv); |
||
1560 | SET_Indexubv(dest, loopback_Indexubv); |
||
1561 | SET_Normal3b(dest, loopback_Normal3b); |
||
1562 | SET_Normal3d(dest, loopback_Normal3d); |
||
1563 | SET_Normal3i(dest, loopback_Normal3i); |
||
1564 | SET_Normal3s(dest, loopback_Normal3s); |
||
1565 | SET_Normal3bv(dest, loopback_Normal3bv); |
||
1566 | SET_Normal3dv(dest, loopback_Normal3dv); |
||
1567 | SET_Normal3iv(dest, loopback_Normal3iv); |
||
1568 | SET_Normal3sv(dest, loopback_Normal3sv); |
||
1569 | SET_TexCoord1d(dest, loopback_TexCoord1d); |
||
1570 | SET_TexCoord1i(dest, loopback_TexCoord1i); |
||
1571 | SET_TexCoord1s(dest, loopback_TexCoord1s); |
||
1572 | SET_TexCoord2d(dest, loopback_TexCoord2d); |
||
1573 | SET_TexCoord2s(dest, loopback_TexCoord2s); |
||
1574 | SET_TexCoord2i(dest, loopback_TexCoord2i); |
||
1575 | SET_TexCoord3d(dest, loopback_TexCoord3d); |
||
1576 | SET_TexCoord3i(dest, loopback_TexCoord3i); |
||
1577 | SET_TexCoord3s(dest, loopback_TexCoord3s); |
||
1578 | SET_TexCoord4d(dest, loopback_TexCoord4d); |
||
1579 | SET_TexCoord4i(dest, loopback_TexCoord4i); |
||
1580 | SET_TexCoord4s(dest, loopback_TexCoord4s); |
||
1581 | SET_TexCoord1dv(dest, loopback_TexCoord1dv); |
||
1582 | SET_TexCoord1iv(dest, loopback_TexCoord1iv); |
||
1583 | SET_TexCoord1sv(dest, loopback_TexCoord1sv); |
||
1584 | SET_TexCoord2dv(dest, loopback_TexCoord2dv); |
||
1585 | SET_TexCoord2iv(dest, loopback_TexCoord2iv); |
||
1586 | SET_TexCoord2sv(dest, loopback_TexCoord2sv); |
||
1587 | SET_TexCoord3dv(dest, loopback_TexCoord3dv); |
||
1588 | SET_TexCoord3iv(dest, loopback_TexCoord3iv); |
||
1589 | SET_TexCoord3sv(dest, loopback_TexCoord3sv); |
||
1590 | SET_TexCoord4dv(dest, loopback_TexCoord4dv); |
||
1591 | SET_TexCoord4iv(dest, loopback_TexCoord4iv); |
||
1592 | SET_TexCoord4sv(dest, loopback_TexCoord4sv); |
||
1593 | SET_Vertex2d(dest, loopback_Vertex2d); |
||
1594 | SET_Vertex2i(dest, loopback_Vertex2i); |
||
1595 | SET_Vertex2s(dest, loopback_Vertex2s); |
||
1596 | SET_Vertex3d(dest, loopback_Vertex3d); |
||
1597 | SET_Vertex3i(dest, loopback_Vertex3i); |
||
1598 | SET_Vertex3s(dest, loopback_Vertex3s); |
||
1599 | SET_Vertex4d(dest, loopback_Vertex4d); |
||
1600 | SET_Vertex4i(dest, loopback_Vertex4i); |
||
1601 | SET_Vertex4s(dest, loopback_Vertex4s); |
||
1602 | SET_Vertex2dv(dest, loopback_Vertex2dv); |
||
1603 | SET_Vertex2iv(dest, loopback_Vertex2iv); |
||
1604 | SET_Vertex2sv(dest, loopback_Vertex2sv); |
||
1605 | SET_Vertex3dv(dest, loopback_Vertex3dv); |
||
1606 | SET_Vertex3iv(dest, loopback_Vertex3iv); |
||
1607 | SET_Vertex3sv(dest, loopback_Vertex3sv); |
||
1608 | SET_Vertex4dv(dest, loopback_Vertex4dv); |
||
1609 | SET_Vertex4iv(dest, loopback_Vertex4iv); |
||
1610 | SET_Vertex4sv(dest, loopback_Vertex4sv); |
||
1611 | SET_MultiTexCoord1dARB(dest, loopback_MultiTexCoord1dARB); |
||
1612 | SET_MultiTexCoord1dvARB(dest, loopback_MultiTexCoord1dvARB); |
||
1613 | SET_MultiTexCoord1iARB(dest, loopback_MultiTexCoord1iARB); |
||
1614 | SET_MultiTexCoord1ivARB(dest, loopback_MultiTexCoord1ivARB); |
||
1615 | SET_MultiTexCoord1sARB(dest, loopback_MultiTexCoord1sARB); |
||
1616 | SET_MultiTexCoord1svARB(dest, loopback_MultiTexCoord1svARB); |
||
1617 | SET_MultiTexCoord2dARB(dest, loopback_MultiTexCoord2dARB); |
||
1618 | SET_MultiTexCoord2dvARB(dest, loopback_MultiTexCoord2dvARB); |
||
1619 | SET_MultiTexCoord2iARB(dest, loopback_MultiTexCoord2iARB); |
||
1620 | SET_MultiTexCoord2ivARB(dest, loopback_MultiTexCoord2ivARB); |
||
1621 | SET_MultiTexCoord2sARB(dest, loopback_MultiTexCoord2sARB); |
||
1622 | SET_MultiTexCoord2svARB(dest, loopback_MultiTexCoord2svARB); |
||
1623 | SET_MultiTexCoord3dARB(dest, loopback_MultiTexCoord3dARB); |
||
1624 | SET_MultiTexCoord3dvARB(dest, loopback_MultiTexCoord3dvARB); |
||
1625 | SET_MultiTexCoord3iARB(dest, loopback_MultiTexCoord3iARB); |
||
1626 | SET_MultiTexCoord3ivARB(dest, loopback_MultiTexCoord3ivARB); |
||
1627 | SET_MultiTexCoord3sARB(dest, loopback_MultiTexCoord3sARB); |
||
1628 | SET_MultiTexCoord3svARB(dest, loopback_MultiTexCoord3svARB); |
||
1629 | SET_MultiTexCoord4dARB(dest, loopback_MultiTexCoord4dARB); |
||
1630 | SET_MultiTexCoord4dvARB(dest, loopback_MultiTexCoord4dvARB); |
||
1631 | SET_MultiTexCoord4iARB(dest, loopback_MultiTexCoord4iARB); |
||
1632 | SET_MultiTexCoord4ivARB(dest, loopback_MultiTexCoord4ivARB); |
||
1633 | SET_MultiTexCoord4sARB(dest, loopback_MultiTexCoord4sARB); |
||
1634 | SET_MultiTexCoord4svARB(dest, loopback_MultiTexCoord4svARB); |
||
1635 | SET_EvalCoord2dv(dest, loopback_EvalCoord2dv); |
||
1636 | SET_EvalCoord2fv(dest, loopback_EvalCoord2fv); |
||
1637 | SET_EvalCoord2d(dest, loopback_EvalCoord2d); |
||
1638 | SET_EvalCoord1dv(dest, loopback_EvalCoord1dv); |
||
1639 | SET_EvalCoord1fv(dest, loopback_EvalCoord1fv); |
||
1640 | SET_EvalCoord1d(dest, loopback_EvalCoord1d); |
||
1641 | SET_Materialf(dest, loopback_Materialf); |
||
1642 | SET_Materiali(dest, loopback_Materiali); |
||
1643 | SET_Materialiv(dest, loopback_Materialiv); |
||
1644 | SET_Rectd(dest, loopback_Rectd); |
||
1645 | SET_Rectdv(dest, loopback_Rectdv); |
||
1646 | SET_Rectfv(dest, loopback_Rectfv); |
||
1647 | SET_Recti(dest, loopback_Recti); |
||
1648 | SET_Rectiv(dest, loopback_Rectiv); |
||
1649 | SET_Rects(dest, loopback_Rects); |
||
1650 | SET_Rectsv(dest, loopback_Rectsv); |
||
1651 | SET_FogCoorddEXT(dest, loopback_FogCoorddEXT); |
||
1652 | SET_FogCoorddvEXT(dest, loopback_FogCoorddvEXT); |
||
1653 | |||
1654 | SET_VertexAttrib1sNV(dest, loopback_VertexAttrib1sNV); |
||
1655 | SET_VertexAttrib1dNV(dest, loopback_VertexAttrib1dNV); |
||
1656 | SET_VertexAttrib2sNV(dest, loopback_VertexAttrib2sNV); |
||
1657 | SET_VertexAttrib2dNV(dest, loopback_VertexAttrib2dNV); |
||
1658 | SET_VertexAttrib3sNV(dest, loopback_VertexAttrib3sNV); |
||
1659 | SET_VertexAttrib3dNV(dest, loopback_VertexAttrib3dNV); |
||
1660 | SET_VertexAttrib4sNV(dest, loopback_VertexAttrib4sNV); |
||
1661 | SET_VertexAttrib4dNV(dest, loopback_VertexAttrib4dNV); |
||
1662 | SET_VertexAttrib4ubNV(dest, loopback_VertexAttrib4ubNV); |
||
1663 | SET_VertexAttrib1svNV(dest, loopback_VertexAttrib1svNV); |
||
1664 | SET_VertexAttrib1dvNV(dest, loopback_VertexAttrib1dvNV); |
||
1665 | SET_VertexAttrib2svNV(dest, loopback_VertexAttrib2svNV); |
||
1666 | SET_VertexAttrib2dvNV(dest, loopback_VertexAttrib2dvNV); |
||
1667 | SET_VertexAttrib3svNV(dest, loopback_VertexAttrib3svNV); |
||
1668 | SET_VertexAttrib3dvNV(dest, loopback_VertexAttrib3dvNV); |
||
1669 | SET_VertexAttrib4svNV(dest, loopback_VertexAttrib4svNV); |
||
1670 | SET_VertexAttrib4dvNV(dest, loopback_VertexAttrib4dvNV); |
||
1671 | SET_VertexAttrib4ubvNV(dest, loopback_VertexAttrib4ubvNV); |
||
1672 | SET_VertexAttribs1svNV(dest, loopback_VertexAttribs1svNV); |
||
1673 | SET_VertexAttribs1fvNV(dest, loopback_VertexAttribs1fvNV); |
||
1674 | SET_VertexAttribs1dvNV(dest, loopback_VertexAttribs1dvNV); |
||
1675 | SET_VertexAttribs2svNV(dest, loopback_VertexAttribs2svNV); |
||
1676 | SET_VertexAttribs2fvNV(dest, loopback_VertexAttribs2fvNV); |
||
1677 | SET_VertexAttribs2dvNV(dest, loopback_VertexAttribs2dvNV); |
||
1678 | SET_VertexAttribs3svNV(dest, loopback_VertexAttribs3svNV); |
||
1679 | SET_VertexAttribs3fvNV(dest, loopback_VertexAttribs3fvNV); |
||
1680 | SET_VertexAttribs3dvNV(dest, loopback_VertexAttribs3dvNV); |
||
1681 | SET_VertexAttribs4svNV(dest, loopback_VertexAttribs4svNV); |
||
1682 | SET_VertexAttribs4fvNV(dest, loopback_VertexAttribs4fvNV); |
||
1683 | SET_VertexAttribs4dvNV(dest, loopback_VertexAttribs4dvNV); |
||
1684 | SET_VertexAttribs4ubvNV(dest, loopback_VertexAttribs4ubvNV); |
||
1685 | |||
1686 | SET_VertexAttrib1sARB(dest, loopback_VertexAttrib1sARB); |
||
1687 | SET_VertexAttrib1dARB(dest, loopback_VertexAttrib1dARB); |
||
1688 | SET_VertexAttrib2sARB(dest, loopback_VertexAttrib2sARB); |
||
1689 | SET_VertexAttrib2dARB(dest, loopback_VertexAttrib2dARB); |
||
1690 | SET_VertexAttrib3sARB(dest, loopback_VertexAttrib3sARB); |
||
1691 | SET_VertexAttrib3dARB(dest, loopback_VertexAttrib3dARB); |
||
1692 | SET_VertexAttrib4sARB(dest, loopback_VertexAttrib4sARB); |
||
1693 | SET_VertexAttrib4dARB(dest, loopback_VertexAttrib4dARB); |
||
1694 | SET_VertexAttrib1svARB(dest, loopback_VertexAttrib1svARB); |
||
1695 | SET_VertexAttrib1dvARB(dest, loopback_VertexAttrib1dvARB); |
||
1696 | SET_VertexAttrib2svARB(dest, loopback_VertexAttrib2svARB); |
||
1697 | SET_VertexAttrib2dvARB(dest, loopback_VertexAttrib2dvARB); |
||
1698 | SET_VertexAttrib3svARB(dest, loopback_VertexAttrib3svARB); |
||
1699 | SET_VertexAttrib3dvARB(dest, loopback_VertexAttrib3dvARB); |
||
1700 | SET_VertexAttrib4svARB(dest, loopback_VertexAttrib4svARB); |
||
1701 | SET_VertexAttrib4dvARB(dest, loopback_VertexAttrib4dvARB); |
||
1702 | SET_VertexAttrib4NubARB(dest, loopback_VertexAttrib4NubARB); |
||
1703 | SET_VertexAttrib4NubvARB(dest, loopback_VertexAttrib4NubvARB); |
||
1704 | SET_VertexAttrib4bvARB(dest, loopback_VertexAttrib4bvARB); |
||
1705 | SET_VertexAttrib4ivARB(dest, loopback_VertexAttrib4ivARB); |
||
1706 | SET_VertexAttrib4ubvARB(dest, loopback_VertexAttrib4ubvARB); |
||
1707 | SET_VertexAttrib4usvARB(dest, loopback_VertexAttrib4usvARB); |
||
1708 | SET_VertexAttrib4uivARB(dest, loopback_VertexAttrib4uivARB); |
||
1709 | SET_VertexAttrib4NbvARB(dest, loopback_VertexAttrib4NbvARB); |
||
1710 | SET_VertexAttrib4NsvARB(dest, loopback_VertexAttrib4NsvARB); |
||
1711 | SET_VertexAttrib4NivARB(dest, loopback_VertexAttrib4NivARB); |
||
1712 | SET_VertexAttrib4NusvARB(dest, loopback_VertexAttrib4NusvARB); |
||
1713 | SET_VertexAttrib4NuivARB(dest, loopback_VertexAttrib4NuivARB); |
||
1714 | |||
1715 | /* GL_EXT_gpu_shader4, GL 3.0 */ |
||
1716 | SET_VertexAttribI1ivEXT(dest, loopback_VertexAttribI1iv); |
||
1717 | SET_VertexAttribI1uivEXT(dest, loopback_VertexAttribI1uiv); |
||
1718 | SET_VertexAttribI4bvEXT(dest, loopback_VertexAttribI4bv); |
||
1719 | SET_VertexAttribI4svEXT(dest, loopback_VertexAttribI4sv); |
||
1720 | SET_VertexAttribI4ubvEXT(dest, loopback_VertexAttribI4ubv); |
||
1721 | SET_VertexAttribI4usvEXT(dest, loopback_VertexAttribI4usv); |
||
1722 | } |
||
1723 | |||
1724 | |||
1725 | #endif /* FEATURE_beginend */ |