indirect_size.c revision 848b8605
1/*
2 * DO NOT EDIT - This file generated automatically by glX_proto_size.py (from
3 * Mesa) script
4 */
5
6/*
7 * (C) Copyright IBM Corporation 2004
8 * All Rights Reserved.
9 *
10 * Permission is hereby granted, free of charge, to any person obtaining a
11 * copy of this software and associated documentation files (the "Software"),
12 * to deal in the Software without restriction, including without limitation
13 * the rights to use, copy, modify, merge, publish, distribute, sub license,
14 * and/or sell copies of the Software, and to permit persons to whom the
15 * Software is furnished to do so, subject to the following conditions:
16 *
17 * The above copyright notice and this permission notice (including the next
18 * paragraph) shall be included in all copies or substantial portions of the
19 * Software.
20 *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
24 * IBM,
25 * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
26 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
27 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28 * SOFTWARE.
29 */
30
31
32#include <X11/Xfuncproto.h>
33#include <GL/gl.h>
34#include "indirect_size.h"
35
36#if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
37#define PURE __attribute__((pure))
38#else
39#define PURE
40#endif
41
42#if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
43#define FASTCALL __attribute__((fastcall))
44#else
45#define FASTCALL
46#endif
47
48
49#if defined(__CYGWIN__) || defined(__MINGW32__) || defined(GLX_USE_APPLEGL)
50#undef HAVE_ALIAS
51#endif
52#ifdef HAVE_ALIAS
53#define ALIAS2(from,to) \
54    _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
55        __attribute__ ((alias( # to )));
56#define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )
57#else
58#define ALIAS(from,to) \
59    _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
60    { return __gl ## to ## _size( e ); }
61#endif
62
63
64_X_INTERNAL PURE FASTCALL GLint
65__glCallLists_size(GLenum e)
66{
67    switch (e) {
68    case GL_BYTE:
69    case GL_UNSIGNED_BYTE:
70        return 1;
71    case GL_SHORT:
72    case GL_UNSIGNED_SHORT:
73    case GL_2_BYTES:
74    case GL_HALF_FLOAT:
75        return 2;
76    case GL_3_BYTES:
77        return 3;
78    case GL_INT:
79    case GL_UNSIGNED_INT:
80    case GL_FLOAT:
81    case GL_4_BYTES:
82        return 4;
83    default:
84        return 0;
85    }
86}
87
88_X_INTERNAL PURE FASTCALL GLint
89__glFogfv_size(GLenum e)
90{
91    switch (e) {
92    case GL_FOG_INDEX:
93    case GL_FOG_DENSITY:
94    case GL_FOG_START:
95    case GL_FOG_END:
96    case GL_FOG_MODE:
97    case GL_FOG_OFFSET_VALUE_SGIX:
98    case GL_FOG_DISTANCE_MODE_NV:
99        return 1;
100    case GL_FOG_COLOR:
101        return 4;
102    default:
103        return 0;
104    }
105}
106
107_X_INTERNAL PURE FASTCALL GLint
108__glLightfv_size(GLenum e)
109{
110    switch (e) {
111    case GL_SPOT_EXPONENT:
112    case GL_SPOT_CUTOFF:
113    case GL_CONSTANT_ATTENUATION:
114    case GL_LINEAR_ATTENUATION:
115    case GL_QUADRATIC_ATTENUATION:
116        return 1;
117    case GL_SPOT_DIRECTION:
118        return 3;
119    case GL_AMBIENT:
120    case GL_DIFFUSE:
121    case GL_SPECULAR:
122    case GL_POSITION:
123        return 4;
124    default:
125        return 0;
126    }
127}
128
129_X_INTERNAL PURE FASTCALL GLint
130__glLightModelfv_size(GLenum e)
131{
132    switch (e) {
133    case GL_LIGHT_MODEL_LOCAL_VIEWER:
134    case GL_LIGHT_MODEL_TWO_SIDE:
135    case GL_LIGHT_MODEL_COLOR_CONTROL:
136        /* case GL_LIGHT_MODEL_COLOR_CONTROL_EXT: */
137        return 1;
138    case GL_LIGHT_MODEL_AMBIENT:
139        return 4;
140    default:
141        return 0;
142    }
143}
144
145_X_INTERNAL PURE FASTCALL GLint
146__glMaterialfv_size(GLenum e)
147{
148    switch (e) {
149    case GL_SHININESS:
150        return 1;
151    case GL_COLOR_INDEXES:
152        return 3;
153    case GL_AMBIENT:
154    case GL_DIFFUSE:
155    case GL_SPECULAR:
156    case GL_EMISSION:
157    case GL_AMBIENT_AND_DIFFUSE:
158        return 4;
159    default:
160        return 0;
161    }
162}
163
164_X_INTERNAL PURE FASTCALL GLint
165__glTexParameterfv_size(GLenum e)
166{
167    switch (e) {
168    case GL_TEXTURE_MAG_FILTER:
169    case GL_TEXTURE_MIN_FILTER:
170    case GL_TEXTURE_WRAP_S:
171    case GL_TEXTURE_WRAP_T:
172    case GL_TEXTURE_PRIORITY:
173    case GL_TEXTURE_WRAP_R:
174    case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
175        /* case GL_SHADOW_AMBIENT_SGIX: */
176    case GL_TEXTURE_MIN_LOD:
177    case GL_TEXTURE_MAX_LOD:
178    case GL_TEXTURE_BASE_LEVEL:
179    case GL_TEXTURE_MAX_LEVEL:
180    case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
181    case GL_TEXTURE_LOD_BIAS_S_SGIX:
182    case GL_TEXTURE_LOD_BIAS_T_SGIX:
183    case GL_TEXTURE_LOD_BIAS_R_SGIX:
184    case GL_GENERATE_MIPMAP:
185        /* case GL_GENERATE_MIPMAP_SGIS: */
186    case GL_TEXTURE_COMPARE_SGIX:
187    case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
188    case GL_TEXTURE_MAX_CLAMP_S_SGIX:
189    case GL_TEXTURE_MAX_CLAMP_T_SGIX:
190    case GL_TEXTURE_MAX_CLAMP_R_SGIX:
191    case GL_TEXTURE_MAX_ANISOTROPY_EXT:
192    case GL_TEXTURE_LOD_BIAS:
193        /* case GL_TEXTURE_LOD_BIAS_EXT: */
194    case GL_TEXTURE_STORAGE_HINT_APPLE:
195    case GL_STORAGE_PRIVATE_APPLE:
196    case GL_STORAGE_CACHED_APPLE:
197    case GL_STORAGE_SHARED_APPLE:
198    case GL_DEPTH_TEXTURE_MODE:
199        /* case GL_DEPTH_TEXTURE_MODE_ARB: */
200    case GL_TEXTURE_COMPARE_MODE:
201        /* case GL_TEXTURE_COMPARE_MODE_ARB: */
202    case GL_TEXTURE_COMPARE_FUNC:
203        /* case GL_TEXTURE_COMPARE_FUNC_ARB: */
204    case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
205        return 1;
206    case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
207    case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
208        return 2;
209    case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
210        return 3;
211    case GL_TEXTURE_BORDER_COLOR:
212    case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
213    case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
214        return 4;
215    default:
216        return 0;
217    }
218}
219
220_X_INTERNAL PURE FASTCALL GLint
221__glTexEnvfv_size(GLenum e)
222{
223    switch (e) {
224    case GL_ALPHA_SCALE:
225    case GL_TEXTURE_ENV_MODE:
226    case GL_TEXTURE_LOD_BIAS:
227    case GL_COMBINE_RGB:
228    case GL_COMBINE_ALPHA:
229    case GL_RGB_SCALE:
230    case GL_SOURCE0_RGB:
231    case GL_SOURCE1_RGB:
232    case GL_SOURCE2_RGB:
233    case GL_SOURCE3_RGB_NV:
234    case GL_SOURCE0_ALPHA:
235    case GL_SOURCE1_ALPHA:
236    case GL_SOURCE2_ALPHA:
237    case GL_SOURCE3_ALPHA_NV:
238    case GL_OPERAND0_RGB:
239    case GL_OPERAND1_RGB:
240    case GL_OPERAND2_RGB:
241    case GL_OPERAND3_RGB_NV:
242    case GL_OPERAND0_ALPHA:
243    case GL_OPERAND1_ALPHA:
244    case GL_OPERAND2_ALPHA:
245    case GL_OPERAND3_ALPHA_NV:
246    case GL_BUMP_TARGET_ATI:
247    case GL_COORD_REPLACE_ARB:
248        /* case GL_COORD_REPLACE_NV: */
249        return 1;
250    case GL_TEXTURE_ENV_COLOR:
251        return 4;
252    default:
253        return 0;
254    }
255}
256
257_X_INTERNAL PURE FASTCALL GLint
258__glTexGendv_size(GLenum e)
259{
260    switch (e) {
261    case GL_TEXTURE_GEN_MODE:
262        return 1;
263    case GL_OBJECT_PLANE:
264    case GL_EYE_PLANE:
265        return 4;
266    default:
267        return 0;
268    }
269}
270
271_X_INTERNAL PURE FASTCALL GLint
272__glMap1d_size(GLenum e)
273{
274    switch (e) {
275    case GL_MAP1_INDEX:
276    case GL_MAP1_TEXTURE_COORD_1:
277        return 1;
278    case GL_MAP1_TEXTURE_COORD_2:
279        return 2;
280    case GL_MAP1_NORMAL:
281    case GL_MAP1_TEXTURE_COORD_3:
282    case GL_MAP1_VERTEX_3:
283        return 3;
284    case GL_MAP1_COLOR_4:
285    case GL_MAP1_TEXTURE_COORD_4:
286    case GL_MAP1_VERTEX_4:
287        return 4;
288    default:
289        return 0;
290    }
291}
292
293_X_INTERNAL PURE FASTCALL GLint
294__glMap2d_size(GLenum e)
295{
296    switch (e) {
297    case GL_MAP2_INDEX:
298    case GL_MAP2_TEXTURE_COORD_1:
299        return 1;
300    case GL_MAP2_TEXTURE_COORD_2:
301        return 2;
302    case GL_MAP2_NORMAL:
303    case GL_MAP2_TEXTURE_COORD_3:
304    case GL_MAP2_VERTEX_3:
305        return 3;
306    case GL_MAP2_COLOR_4:
307    case GL_MAP2_TEXTURE_COORD_4:
308    case GL_MAP2_VERTEX_4:
309        return 4;
310    default:
311        return 0;
312    }
313}
314
315_X_INTERNAL PURE FASTCALL GLint
316__glColorTableParameterfv_size(GLenum e)
317{
318    switch (e) {
319    case GL_COLOR_TABLE_SCALE:
320    case GL_COLOR_TABLE_BIAS:
321        return 4;
322    default:
323        return 0;
324    }
325}
326
327_X_INTERNAL PURE FASTCALL GLint
328__glConvolutionParameterfv_size(GLenum e)
329{
330    switch (e) {
331    case GL_CONVOLUTION_BORDER_MODE:
332        /* case GL_CONVOLUTION_BORDER_MODE_EXT: */
333        return 1;
334    case GL_CONVOLUTION_FILTER_SCALE:
335        /* case GL_CONVOLUTION_FILTER_SCALE_EXT: */
336    case GL_CONVOLUTION_FILTER_BIAS:
337        /* case GL_CONVOLUTION_FILTER_BIAS_EXT: */
338    case GL_CONVOLUTION_BORDER_COLOR:
339        /* case GL_CONVOLUTION_BORDER_COLOR_HP: */
340        return 4;
341    default:
342        return 0;
343    }
344}
345
346_X_INTERNAL PURE FASTCALL GLint
347__glPointParameterfv_size(GLenum e)
348{
349    switch (e) {
350    case GL_POINT_SIZE_MIN:
351        /* case GL_POINT_SIZE_MIN_ARB: */
352        /* case GL_POINT_SIZE_MIN_SGIS: */
353    case GL_POINT_SIZE_MAX:
354        /* case GL_POINT_SIZE_MAX_ARB: */
355        /* case GL_POINT_SIZE_MAX_SGIS: */
356    case GL_POINT_FADE_THRESHOLD_SIZE:
357        /* case GL_POINT_FADE_THRESHOLD_SIZE_ARB: */
358        /* case GL_POINT_FADE_THRESHOLD_SIZE_SGIS: */
359    case GL_POINT_SPRITE_R_MODE_NV:
360    case GL_POINT_SPRITE_COORD_ORIGIN:
361        return 1;
362    case GL_POINT_DISTANCE_ATTENUATION:
363        /* case GL_POINT_DISTANCE_ATTENUATION_ARB: */
364        /* case GL_POINT_DISTANCE_ATTENUATION_SGIS: */
365        return 3;
366    default:
367        return 0;
368    }
369}
370
371ALIAS(Fogiv, Fogfv)
372ALIAS(Lightiv, Lightfv)
373ALIAS(LightModeliv, LightModelfv)
374ALIAS(Materialiv, Materialfv)
375ALIAS(TexParameteriv, TexParameterfv)
376ALIAS(TexEnviv, TexEnvfv)
377ALIAS(TexGenfv, TexGendv)
378ALIAS(TexGeniv, TexGendv)
379ALIAS(Map1f, Map1d)
380ALIAS(Map2f, Map2d)
381ALIAS(ColorTableParameteriv, ColorTableParameterfv)
382ALIAS(ConvolutionParameteriv, ConvolutionParameterfv)
383ALIAS(PointParameteriv, PointParameterfv)
384#undef PURE
385#undef FASTCALL
386