1b8e80941Smrg/* DO NOT EDIT - This file generated automatically by glX_proto_size.py (from Mesa) script */
2848b8605Smrg
3848b8605Smrg/*
4848b8605Smrg * (C) Copyright IBM Corporation 2004
5848b8605Smrg * All Rights Reserved.
6848b8605Smrg *
7848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a
8848b8605Smrg * copy of this software and associated documentation files (the "Software"),
9848b8605Smrg * to deal in the Software without restriction, including without limitation
10848b8605Smrg * the rights to use, copy, modify, merge, publish, distribute, sub license,
11848b8605Smrg * and/or sell copies of the Software, and to permit persons to whom the
12848b8605Smrg * Software is furnished to do so, subject to the following conditions:
13848b8605Smrg *
14848b8605Smrg * The above copyright notice and this permission notice (including the next
15848b8605Smrg * paragraph) shall be included in all copies or substantial portions of the
16848b8605Smrg * Software.
17848b8605Smrg *
18848b8605Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19848b8605Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20848b8605Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
21848b8605Smrg * IBM,
22848b8605Smrg * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23848b8605Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24848b8605Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25848b8605Smrg * SOFTWARE.
26848b8605Smrg */
27848b8605Smrg
28848b8605Smrg
29848b8605Smrg#include <X11/Xfuncproto.h>
30848b8605Smrg#include <GL/gl.h>
31848b8605Smrg#include "indirect_size.h"
32848b8605Smrg
33b8e80941Smrg#  if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
34b8e80941Smrg#    define PURE __attribute__((pure))
35b8e80941Smrg#  else
36b8e80941Smrg#    define PURE
37b8e80941Smrg#  endif
38848b8605Smrg
39b8e80941Smrg#  if defined(__i386__) && defined(__GNUC__) && !defined(__CYGWIN__) && !defined(__MINGW32__)
40b8e80941Smrg#    define FASTCALL __attribute__((fastcall))
41b8e80941Smrg#  else
42b8e80941Smrg#    define FASTCALL
43b8e80941Smrg#  endif
44848b8605Smrg
45848b8605Smrg
46b8e80941Smrg#ifdef HAVE_FUNC_ATTRIBUTE_ALIAS
47b8e80941Smrg#  define ALIAS2(from,to) \
48848b8605Smrg    _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
49848b8605Smrg        __attribute__ ((alias( # to )));
50b8e80941Smrg#  define ALIAS(from,to) ALIAS2( from, __gl ## to ## _size )
51848b8605Smrg#else
52b8e80941Smrg#  define ALIAS(from,to) \
53848b8605Smrg    _X_INTERNAL PURE FASTCALL GLint __gl ## from ## _size( GLenum e ) \
54848b8605Smrg    { return __gl ## to ## _size( e ); }
55848b8605Smrg#endif
56848b8605Smrg
57848b8605Smrg
58848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
59b8e80941Smrg__glCallLists_size( GLenum e )
60848b8605Smrg{
61b8e80941Smrg    switch( e ) {
62b8e80941Smrg        case GL_BYTE:
63b8e80941Smrg        case GL_UNSIGNED_BYTE:
64b8e80941Smrg            return 1;
65b8e80941Smrg        case GL_SHORT:
66b8e80941Smrg        case GL_UNSIGNED_SHORT:
67b8e80941Smrg        case GL_2_BYTES:
68b8e80941Smrg        case GL_HALF_FLOAT:
69b8e80941Smrg            return 2;
70b8e80941Smrg        case GL_3_BYTES:
71b8e80941Smrg            return 3;
72b8e80941Smrg        case GL_INT:
73b8e80941Smrg        case GL_UNSIGNED_INT:
74b8e80941Smrg        case GL_FLOAT:
75b8e80941Smrg        case GL_4_BYTES:
76b8e80941Smrg            return 4;
77b8e80941Smrg        default: return 0;
78848b8605Smrg    }
79848b8605Smrg}
80848b8605Smrg
81848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
82b8e80941Smrg__glFogfv_size( GLenum e )
83848b8605Smrg{
84b8e80941Smrg    switch( e ) {
85b8e80941Smrg        case GL_FOG_INDEX:
86b8e80941Smrg        case GL_FOG_DENSITY:
87b8e80941Smrg        case GL_FOG_START:
88b8e80941Smrg        case GL_FOG_END:
89b8e80941Smrg        case GL_FOG_MODE:
90b8e80941Smrg        case GL_FOG_OFFSET_VALUE_SGIX:
91b8e80941Smrg        case GL_FOG_DISTANCE_MODE_NV:
92b8e80941Smrg            return 1;
93b8e80941Smrg        case GL_FOG_COLOR:
94b8e80941Smrg            return 4;
95b8e80941Smrg        default: return 0;
96848b8605Smrg    }
97848b8605Smrg}
98848b8605Smrg
99848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
100b8e80941Smrg__glLightfv_size( GLenum e )
101848b8605Smrg{
102b8e80941Smrg    switch( e ) {
103b8e80941Smrg        case GL_SPOT_EXPONENT:
104b8e80941Smrg        case GL_SPOT_CUTOFF:
105b8e80941Smrg        case GL_CONSTANT_ATTENUATION:
106b8e80941Smrg        case GL_LINEAR_ATTENUATION:
107b8e80941Smrg        case GL_QUADRATIC_ATTENUATION:
108b8e80941Smrg            return 1;
109b8e80941Smrg        case GL_SPOT_DIRECTION:
110b8e80941Smrg            return 3;
111b8e80941Smrg        case GL_AMBIENT:
112b8e80941Smrg        case GL_DIFFUSE:
113b8e80941Smrg        case GL_SPECULAR:
114b8e80941Smrg        case GL_POSITION:
115b8e80941Smrg            return 4;
116b8e80941Smrg        default: return 0;
117848b8605Smrg    }
118848b8605Smrg}
119848b8605Smrg
120848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
121b8e80941Smrg__glLightModelfv_size( GLenum e )
122848b8605Smrg{
123b8e80941Smrg    switch( e ) {
124b8e80941Smrg        case GL_LIGHT_MODEL_LOCAL_VIEWER:
125b8e80941Smrg        case GL_LIGHT_MODEL_TWO_SIDE:
126b8e80941Smrg        case GL_LIGHT_MODEL_COLOR_CONTROL:
127b8e80941Smrg/*      case GL_LIGHT_MODEL_COLOR_CONTROL_EXT:*/
128b8e80941Smrg            return 1;
129b8e80941Smrg        case GL_LIGHT_MODEL_AMBIENT:
130b8e80941Smrg            return 4;
131b8e80941Smrg        default: return 0;
132848b8605Smrg    }
133848b8605Smrg}
134848b8605Smrg
135848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
136b8e80941Smrg__glMaterialfv_size( GLenum e )
137848b8605Smrg{
138b8e80941Smrg    switch( e ) {
139b8e80941Smrg        case GL_SHININESS:
140b8e80941Smrg            return 1;
141b8e80941Smrg        case GL_COLOR_INDEXES:
142b8e80941Smrg            return 3;
143b8e80941Smrg        case GL_AMBIENT:
144b8e80941Smrg        case GL_DIFFUSE:
145b8e80941Smrg        case GL_SPECULAR:
146b8e80941Smrg        case GL_EMISSION:
147b8e80941Smrg        case GL_AMBIENT_AND_DIFFUSE:
148b8e80941Smrg            return 4;
149b8e80941Smrg        default: return 0;
150848b8605Smrg    }
151848b8605Smrg}
152848b8605Smrg
153848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
154b8e80941Smrg__glTexParameterfv_size( GLenum e )
155848b8605Smrg{
156b8e80941Smrg    switch( e ) {
157b8e80941Smrg        case GL_TEXTURE_MAG_FILTER:
158b8e80941Smrg        case GL_TEXTURE_MIN_FILTER:
159b8e80941Smrg        case GL_TEXTURE_WRAP_S:
160b8e80941Smrg        case GL_TEXTURE_WRAP_T:
161b8e80941Smrg        case GL_TEXTURE_PRIORITY:
162b8e80941Smrg        case GL_TEXTURE_WRAP_R:
163b8e80941Smrg        case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
164b8e80941Smrg/*      case GL_SHADOW_AMBIENT_SGIX:*/
165b8e80941Smrg        case GL_TEXTURE_MIN_LOD:
166b8e80941Smrg        case GL_TEXTURE_MAX_LOD:
167b8e80941Smrg        case GL_TEXTURE_BASE_LEVEL:
168b8e80941Smrg        case GL_TEXTURE_MAX_LEVEL:
169b8e80941Smrg        case GL_TEXTURE_CLIPMAP_FRAME_SGIX:
170b8e80941Smrg        case GL_TEXTURE_LOD_BIAS_S_SGIX:
171b8e80941Smrg        case GL_TEXTURE_LOD_BIAS_T_SGIX:
172b8e80941Smrg        case GL_TEXTURE_LOD_BIAS_R_SGIX:
173b8e80941Smrg        case GL_GENERATE_MIPMAP:
174b8e80941Smrg/*      case GL_GENERATE_MIPMAP_SGIS:*/
175b8e80941Smrg        case GL_TEXTURE_COMPARE_SGIX:
176b8e80941Smrg        case GL_TEXTURE_COMPARE_OPERATOR_SGIX:
177b8e80941Smrg        case GL_TEXTURE_MAX_CLAMP_S_SGIX:
178b8e80941Smrg        case GL_TEXTURE_MAX_CLAMP_T_SGIX:
179b8e80941Smrg        case GL_TEXTURE_MAX_CLAMP_R_SGIX:
180b8e80941Smrg        case GL_TEXTURE_MAX_ANISOTROPY_EXT:
181b8e80941Smrg        case GL_TEXTURE_LOD_BIAS:
182b8e80941Smrg/*      case GL_TEXTURE_LOD_BIAS_EXT:*/
183b8e80941Smrg        case GL_TEXTURE_STORAGE_HINT_APPLE:
184b8e80941Smrg        case GL_STORAGE_PRIVATE_APPLE:
185b8e80941Smrg        case GL_STORAGE_CACHED_APPLE:
186b8e80941Smrg        case GL_STORAGE_SHARED_APPLE:
187b8e80941Smrg        case GL_DEPTH_TEXTURE_MODE:
188b8e80941Smrg/*      case GL_DEPTH_TEXTURE_MODE_ARB:*/
189b8e80941Smrg        case GL_TEXTURE_COMPARE_MODE:
190b8e80941Smrg/*      case GL_TEXTURE_COMPARE_MODE_ARB:*/
191b8e80941Smrg        case GL_TEXTURE_COMPARE_FUNC:
192b8e80941Smrg/*      case GL_TEXTURE_COMPARE_FUNC_ARB:*/
193b8e80941Smrg        case GL_TEXTURE_UNSIGNED_REMAP_MODE_NV:
194b8e80941Smrg            return 1;
195b8e80941Smrg        case GL_TEXTURE_CLIPMAP_CENTER_SGIX:
196b8e80941Smrg        case GL_TEXTURE_CLIPMAP_OFFSET_SGIX:
197b8e80941Smrg            return 2;
198b8e80941Smrg        case GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX:
199b8e80941Smrg            return 3;
200b8e80941Smrg        case GL_TEXTURE_BORDER_COLOR:
201b8e80941Smrg        case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
202b8e80941Smrg        case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
203b8e80941Smrg            return 4;
204b8e80941Smrg        default: return 0;
205848b8605Smrg    }
206848b8605Smrg}
207848b8605Smrg
208848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
209b8e80941Smrg__glTexEnvfv_size( GLenum e )
210848b8605Smrg{
211b8e80941Smrg    switch( e ) {
212b8e80941Smrg        case GL_ALPHA_SCALE:
213b8e80941Smrg        case GL_TEXTURE_ENV_MODE:
214b8e80941Smrg        case GL_TEXTURE_LOD_BIAS:
215b8e80941Smrg        case GL_COMBINE_RGB:
216b8e80941Smrg        case GL_COMBINE_ALPHA:
217b8e80941Smrg        case GL_RGB_SCALE:
218b8e80941Smrg        case GL_SOURCE0_RGB:
219b8e80941Smrg        case GL_SOURCE1_RGB:
220b8e80941Smrg        case GL_SOURCE2_RGB:
221b8e80941Smrg        case GL_SOURCE3_RGB_NV:
222b8e80941Smrg        case GL_SOURCE0_ALPHA:
223b8e80941Smrg        case GL_SOURCE1_ALPHA:
224b8e80941Smrg        case GL_SOURCE2_ALPHA:
225b8e80941Smrg        case GL_SOURCE3_ALPHA_NV:
226b8e80941Smrg        case GL_OPERAND0_RGB:
227b8e80941Smrg        case GL_OPERAND1_RGB:
228b8e80941Smrg        case GL_OPERAND2_RGB:
229b8e80941Smrg        case GL_OPERAND3_RGB_NV:
230b8e80941Smrg        case GL_OPERAND0_ALPHA:
231b8e80941Smrg        case GL_OPERAND1_ALPHA:
232b8e80941Smrg        case GL_OPERAND2_ALPHA:
233b8e80941Smrg        case GL_OPERAND3_ALPHA_NV:
234b8e80941Smrg        case GL_BUMP_TARGET_ATI:
235b8e80941Smrg        case GL_COORD_REPLACE_ARB:
236b8e80941Smrg/*      case GL_COORD_REPLACE_NV:*/
237b8e80941Smrg            return 1;
238b8e80941Smrg        case GL_TEXTURE_ENV_COLOR:
239b8e80941Smrg            return 4;
240b8e80941Smrg        default: return 0;
241848b8605Smrg    }
242848b8605Smrg}
243848b8605Smrg
244848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
245b8e80941Smrg__glTexGendv_size( GLenum e )
246848b8605Smrg{
247b8e80941Smrg    switch( e ) {
248b8e80941Smrg        case GL_TEXTURE_GEN_MODE:
249b8e80941Smrg            return 1;
250b8e80941Smrg        case GL_OBJECT_PLANE:
251b8e80941Smrg        case GL_EYE_PLANE:
252b8e80941Smrg            return 4;
253b8e80941Smrg        default: return 0;
254848b8605Smrg    }
255848b8605Smrg}
256848b8605Smrg
257848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
258b8e80941Smrg__glMap1d_size( GLenum e )
259848b8605Smrg{
260b8e80941Smrg    switch( e ) {
261b8e80941Smrg        case GL_MAP1_INDEX:
262b8e80941Smrg        case GL_MAP1_TEXTURE_COORD_1:
263b8e80941Smrg            return 1;
264b8e80941Smrg        case GL_MAP1_TEXTURE_COORD_2:
265b8e80941Smrg            return 2;
266b8e80941Smrg        case GL_MAP1_NORMAL:
267b8e80941Smrg        case GL_MAP1_TEXTURE_COORD_3:
268b8e80941Smrg        case GL_MAP1_VERTEX_3:
269b8e80941Smrg            return 3;
270b8e80941Smrg        case GL_MAP1_COLOR_4:
271b8e80941Smrg        case GL_MAP1_TEXTURE_COORD_4:
272b8e80941Smrg        case GL_MAP1_VERTEX_4:
273b8e80941Smrg            return 4;
274b8e80941Smrg        default: return 0;
275848b8605Smrg    }
276848b8605Smrg}
277848b8605Smrg
278848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
279b8e80941Smrg__glMap2d_size( GLenum e )
280848b8605Smrg{
281b8e80941Smrg    switch( e ) {
282b8e80941Smrg        case GL_MAP2_INDEX:
283b8e80941Smrg        case GL_MAP2_TEXTURE_COORD_1:
284b8e80941Smrg            return 1;
285b8e80941Smrg        case GL_MAP2_TEXTURE_COORD_2:
286b8e80941Smrg            return 2;
287b8e80941Smrg        case GL_MAP2_NORMAL:
288b8e80941Smrg        case GL_MAP2_TEXTURE_COORD_3:
289b8e80941Smrg        case GL_MAP2_VERTEX_3:
290b8e80941Smrg            return 3;
291b8e80941Smrg        case GL_MAP2_COLOR_4:
292b8e80941Smrg        case GL_MAP2_TEXTURE_COORD_4:
293b8e80941Smrg        case GL_MAP2_VERTEX_4:
294b8e80941Smrg            return 4;
295b8e80941Smrg        default: return 0;
296848b8605Smrg    }
297848b8605Smrg}
298848b8605Smrg
299848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
300b8e80941Smrg__glColorTableParameterfv_size( GLenum e )
301848b8605Smrg{
302b8e80941Smrg    switch( e ) {
303b8e80941Smrg        case GL_COLOR_TABLE_SCALE:
304b8e80941Smrg        case GL_COLOR_TABLE_BIAS:
305b8e80941Smrg            return 4;
306b8e80941Smrg        default: return 0;
307848b8605Smrg    }
308848b8605Smrg}
309848b8605Smrg
310848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
311b8e80941Smrg__glConvolutionParameterfv_size( GLenum e )
312848b8605Smrg{
313b8e80941Smrg    switch( e ) {
314b8e80941Smrg        case GL_CONVOLUTION_BORDER_MODE:
315b8e80941Smrg/*      case GL_CONVOLUTION_BORDER_MODE_EXT:*/
316b8e80941Smrg            return 1;
317b8e80941Smrg        case GL_CONVOLUTION_FILTER_SCALE:
318b8e80941Smrg/*      case GL_CONVOLUTION_FILTER_SCALE_EXT:*/
319b8e80941Smrg        case GL_CONVOLUTION_FILTER_BIAS:
320b8e80941Smrg/*      case GL_CONVOLUTION_FILTER_BIAS_EXT:*/
321b8e80941Smrg        case GL_CONVOLUTION_BORDER_COLOR:
322b8e80941Smrg/*      case GL_CONVOLUTION_BORDER_COLOR_HP:*/
323b8e80941Smrg            return 4;
324b8e80941Smrg        default: return 0;
325848b8605Smrg    }
326848b8605Smrg}
327848b8605Smrg
328848b8605Smrg_X_INTERNAL PURE FASTCALL GLint
329b8e80941Smrg__glPointParameterfv_size( GLenum e )
330848b8605Smrg{
331b8e80941Smrg    switch( e ) {
332b8e80941Smrg        case GL_POINT_SIZE_MIN:
333b8e80941Smrg/*      case GL_POINT_SIZE_MIN_ARB:*/
334b8e80941Smrg/*      case GL_POINT_SIZE_MIN_SGIS:*/
335b8e80941Smrg        case GL_POINT_SIZE_MAX:
336b8e80941Smrg/*      case GL_POINT_SIZE_MAX_ARB:*/
337b8e80941Smrg/*      case GL_POINT_SIZE_MAX_SGIS:*/
338b8e80941Smrg        case GL_POINT_FADE_THRESHOLD_SIZE:
339b8e80941Smrg/*      case GL_POINT_FADE_THRESHOLD_SIZE_ARB:*/
340b8e80941Smrg/*      case GL_POINT_FADE_THRESHOLD_SIZE_SGIS:*/
341b8e80941Smrg        case GL_POINT_SPRITE_R_MODE_NV:
342b8e80941Smrg        case GL_POINT_SPRITE_COORD_ORIGIN:
343b8e80941Smrg            return 1;
344b8e80941Smrg        case GL_POINT_DISTANCE_ATTENUATION:
345b8e80941Smrg/*      case GL_POINT_DISTANCE_ATTENUATION_ARB:*/
346b8e80941Smrg/*      case GL_POINT_DISTANCE_ATTENUATION_SGIS:*/
347b8e80941Smrg            return 3;
348b8e80941Smrg        default: return 0;
349848b8605Smrg    }
350848b8605Smrg}
351848b8605Smrg
352b8e80941SmrgALIAS( Fogiv, Fogfv )
353b8e80941SmrgALIAS( Lightiv, Lightfv )
354b8e80941SmrgALIAS( LightModeliv, LightModelfv )
355b8e80941SmrgALIAS( Materialiv, Materialfv )
356b8e80941SmrgALIAS( TexParameteriv, TexParameterfv )
357b8e80941SmrgALIAS( TexEnviv, TexEnvfv )
358b8e80941SmrgALIAS( TexGenfv, TexGendv )
359b8e80941SmrgALIAS( TexGeniv, TexGendv )
360b8e80941SmrgALIAS( Map1f, Map1d )
361b8e80941SmrgALIAS( Map2f, Map2d )
362b8e80941SmrgALIAS( ColorTableParameteriv, ColorTableParameterfv )
363b8e80941SmrgALIAS( ConvolutionParameteriv, ConvolutionParameterfv )
364b8e80941SmrgALIAS( PointParameteriv, PointParameterfv )
365b8e80941Smrg
366b8e80941Smrg#  undef PURE
367b8e80941Smrg#  undef FASTCALL
368