1 /* GdkGLExt - OpenGL Extension to GDK
2  * Copyright (C) 2002-2004  Naofumi Yasufuku
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
17  */
18 
19 /*
20  * Additional OpenGL extensions.
21  */
22 
23 #ifndef __glext_extra_h_
24 #define __glext_extra_h_
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__)
31 #define WIN32_LEAN_AND_MEAN 1
32 #include <windows.h>
33 #endif
34 
35 #ifndef APIENTRY
36 #define APIENTRY
37 #endif
38 #ifndef GLAPI
39 #define GLAPI extern
40 #endif
41 
42 /*
43  * 3DFX
44  */
45 
46 /*
47  * APPLE
48  */
49 
50 #ifndef GL_APPLE_texture_range
51 #define GL_TEXTURE_RANGE_LENGTH_APPLE      0x85B7
52 #define GL_TEXTURE_RANGE_POINTER_APPLE     0x85B8
53 #define GL_TEXTURE_STORAGE_HINT_APPLE      0x85BC
54 #endif
55 #if !defined(GL_APPLE_vertex_array_range) && !defined(GL_APPLE_texture_range)
56 #define GL_STORAGE_PRIVATE_APPLE           0x85BD
57 #define GL_STORAGE_CACHED_APPLE            0x85BE
58 #define GL_STORAGE_SHARED_APPLE            0x85BF
59 #endif
60 
61 #ifndef GL_APPLE_float_pixels
62 #define GL_COLOR_FLOAT_APPLE               0x8A0F
63 #define GL_RGBA_FLOAT32_APPLE              0x8814
64 #define GL_RGB_FLOAT32_APPLE               0x8815
65 #define GL_ALPHA_FLOAT32_APPLE             0x8816
66 #define GL_INTENSITY_FLOAT32_APPLE         0x8817
67 #define GL_LUMINANCE_FLOAT32_APPLE         0x8818
68 #define GL_LUMINANCE_ALPHA_FLOAT32_APPLE   0x8819
69 #define GL_RGBA_FLOAT16_APPLE              0x881A
70 #define GL_RGB_FLOAT16_APPLE               0x881B
71 #define GL_ALPHA_FLOAT16_APPLE             0x881C
72 #define GL_INTENSITY_FLOAT16_APPLE         0x881D
73 #define GL_LUMINANCE_FLOAT16_APPLE         0x881E
74 #define GL_LUMINANCE_ALPHA_FLOAT16_APPLE   0x881F
75 #endif
76 
77 #ifndef GL_APPLE_vertex_program_evaluators
78 #define GL_VERTEX_ATTRIB_MAP1_ARB                        0x8A00
79 #define GL_VERTEX_ATTRIB_MAP2_ARB                        0x8A01
80 #define GL_VERTEX_ATTRIB_MAP1_SIZE_ARB                   0x8A02
81 #define GL_VERTEX_ATTRIB_MAP1_COEFF_ARB                  0x8A03
82 #define GL_VERTEX_ATTRIB_MAP1_ORDER_ARB                  0x8A04
83 #define GL_VERTEX_ATTRIB_MAP1_DOMAIN_ARB                 0x8A05
84 #define GL_VERTEX_ATTRIB_MAP2_SIZE_ARB                   0x8A06
85 #define GL_VERTEX_ATTRIB_MAP2_COEFF_ARB                  0x8A07
86 #define GL_VERTEX_ATTRIB_MAP2_ORDER_ARB                  0x8A08
87 #define GL_VERTEX_ATTRIB_MAP2_DOMAIN_ARB                 0x8A09
88 #endif
89 
90 #ifndef GL_APPLE_packed_pixels
91 #define GL_APPLE_packed_pixels 1
92 #endif
93 
94 #ifndef GL_APPLE_texture_range
95 #define GL_APPLE_texture_range 1
96 #ifdef GL_GLEXT_PROTOTYPES
97 GLAPI void APIENTRY glTextureRangeAPPLE (GLenum, GLsizei, const GLvoid *);
98 GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum, GLenum, GLvoid **);
99 #endif /* GL_GLEXT_PROTOTYPES */
100 typedef void (APIENTRY * PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer);
101 typedef void (APIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params);
102 #endif
103 
104 #ifndef GL_APPLE_float_pixels
105 #define GL_APPLE_float_pixels 1
106 #endif
107 
108 #ifndef GL_APPLE_vertex_program_evaluators
109 #define GL_APPLE_vertex_program_evaluators 1
110 #ifdef GL_GLEXT_PROTOTYPES
111 GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname);
112 GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname);
113 GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname);
114 GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
115 GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
116 GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
117 GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
118 #endif /* GL_GLEXT_PROTOTYPES */
119 typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
120 typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname);
121 typedef GLboolean (APIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname);
122 typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
123 typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
124 typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
125 typedef void (APIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
126 #endif
127 
128 /*
129  * ARB
130  */
131 
132 /*
133  * ATI
134  */
135 
136 #ifndef GL_ATI_blend_equation_separate
137 #define GL_ALPHA_BLEND_EQUATION_ATI       0x883D
138 #endif
139 
140 #ifndef GL_ATI_blend_weighted_minmax
141 #define GL_MIN_WEIGHTED_ATI               0x877D
142 #define GL_MAX_WEIGHTED_ATI               0x877E
143 #endif
144 
145 #ifndef GL_ATI_point_cull_mode
146 #define GL_POINT_CULL_MODE_ATI            0x60B3
147 #define GL_POINT_CULL_CENTER_ATI          0x60B4
148 #define GL_POINT_CULL_CLIP_ATI            0x60B5
149 #endif
150 
151 #ifndef GL_ATI_blend_equation_separate
152 #define GL_ATI_blend_equation_separate 1
153 #ifdef GL_GLEXT_PROTOTYPES
154 GLAPI void APIENTRY glBlendEquationSeparateATI (GLenum, GLenum);
155 #endif /* GL_GLEXT_PROTOTYPES */
156 typedef void (APIENTRY * PFNGLBLENDEQUATIONSEPARATEATIPROC) (GLenum equationRGB, GLenum equationAlpha);
157 #endif
158 
159 #ifndef GL_ATI_blend_weighted_minmax
160 #define GL_ATI_blend_weighted_minmax 1
161 #endif
162 
163 #ifndef GL_ATI_point_cull_mode
164 #define GL_ATI_point_cull_mode 1
165 #endif
166 
167 /*
168  * ATIX
169  */
170 
171 #ifndef GL_ATIX_pn_triangles
172 #define GL_PN_TRIANGLES_ATIX                            0x6090
173 #define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATIX      0x6091
174 #define GL_PN_TRIANGLES_POINT_MODE_ATIX                 0x6092
175 #define GL_PN_TRIANGLES_NORMAL_MODE_ATIX                0x6093
176 #define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATIX          0x6094
177 #define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATIX          0x6095
178 #define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATIX           0x6096
179 #define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATIX         0x6097
180 #define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATIX      0x6098
181 #endif
182 
183 #ifndef GL_ATIX_texture_env_combine3
184 #define GL_MODULATE_ADD_ATIX              0x8744
185 #define GL_MODULATE_SIGNED_ADD_ATIX       0x8745
186 #define GL_MODULATE_SUBTRACT_ATIX         0x8746
187 #endif
188 
189 #ifndef GL_ATIX_texture_env_route
190 #define GL_SECONDARY_COLOR_ATIX           0x8747
191 #define GL_TEXTURE_OUTPUT_RGB_ATIX        0x8748
192 #define GL_TEXTURE_OUTPUT_ALPHA_ATIX      0x8749
193 #endif
194 
195 #ifndef GL_ATIX_vertex_shader_output_point_size
196 #define GL_OUTPUT_POINT_SIZE_ATIX         0x610E
197 #endif
198 
199 #ifndef GL_ATIX_point_sprites
200 #define GL_ATIX_point_sprites 1
201 #endif
202 
203 #ifndef GL_ATIX_pn_triangles
204 #define GL_ATIX_pn_triangles 1
205 #ifdef GL_GLEXT_PROTOTYPES
206 GLAPI void APIENTRY glPNTrianglesiATIX (GLenum, GLint);
207 GLAPI void APIENTRY glPNTrianglesfATIX (GLenum, GLfloat);
208 #endif /* GL_GLEXT_PROTOTYPES */
209 typedef void (APIENTRY * PFNGLPNTRIANGLESIATIXPROC) (GLenum pname, GLint param);
210 typedef void (APIENTRY * PFNGLPNTRIANGLESFATIXPROC) (GLenum pname, GLfloat param);
211 #endif
212 
213 #ifndef GL_ATIX_texture_env_combine3
214 #define GL_ATIX_texture_env_combine3 1
215 #endif
216 
217 #ifndef GL_ATIX_texture_env_route
218 #define GL_ATIX_texture_env_route 1
219 #endif
220 
221 #ifndef GL_ATIX_vertex_shader_output_point_size
222 #define GL_ATIX_vertex_shader_output_point_size 1
223 #endif
224 
225 /*
226  * Autodesk
227  */
228 
229 #ifndef GL_Autodesk_facet_normal
230 #define GL_FACET_NORMAL                   0x85D0
231 #endif
232 
233 #ifndef GL_Autodesk_facet_normal
234 #define GL_Autodesk_facet_normal 1
235 #ifdef GL_GLEXT_PROTOTYPES
236 GLAPI void APIENTRY glFacetNormal3b (GLbyte, GLbyte, GLbyte);
237 GLAPI void APIENTRY glFacetNormal3d (GLdouble, GLdouble, GLdouble);
238 GLAPI void APIENTRY glFacetNormal3f (GLfloat, GLfloat, GLfloat);
239 GLAPI void APIENTRY glFacetNormal3i (GLint, GLint, GLint);
240 GLAPI void APIENTRY glFacetNormal3s (GLshort, GLshort, GLshort);
241 GLAPI void APIENTRY glFacetNormal3bv (const GLbyte *);
242 GLAPI void APIENTRY glFacetNormal3dv (const GLdouble *);
243 GLAPI void APIENTRY glFacetNormal3fv (const GLfloat *);
244 GLAPI void APIENTRY glFacetNormal3iv (const GLint *);
245 GLAPI void APIENTRY glFacetNormal3sv (const GLshort *);
246 #endif /* GL_GLEXT_PROTOTYPES */
247 typedef void (APIENTRY * PFNGLFACETNORMAL3BPROC) (GLbyte nx, GLbyte ny, GLbyte nz);
248 typedef void (APIENTRY * PFNGLFACETNORMAL3DPROC) (GLdouble nx, GLdouble ny, GLdouble nz);
249 typedef void (APIENTRY * PFNGLFACETNORMAL3FPROC) (GLfloat nx, GLfloat ny, GLfloat nz);
250 typedef void (APIENTRY * PFNGLFACETNORMAL3IPROC) (GLint nx, GLint ny, GLint nz);
251 typedef void (APIENTRY * PFNGLFACETNORMAL3SPROC) (GLshort nx, GLshort ny, GLshort nz);
252 typedef void (APIENTRY * PFNGLFACETNORMAL3BVPROC) (const GLbyte *v);
253 typedef void (APIENTRY * PFNGLFACETNORMAL3DVPROC) (const GLdouble *v);
254 typedef void (APIENTRY * PFNGLFACETNORMAL3FVPROC) (const GLfloat *v);
255 typedef void (APIENTRY * PFNGLFACETNORMAL3IVPROC) (const GLint *v);
256 typedef void (APIENTRY * PFNGLFACETNORMAL3SVPROC) (const GLshort *v);
257 #endif
258 
259 #ifndef GL_Autodesk_valid_back_buffer_hint
260 #define GL_Autodesk_valid_back_buffer_hint 1
261 #ifdef GL_GLEXT_PROTOTYPES
262 GLAPI void APIENTRY glWindowBackBufferHint (void);
263 GLAPI GLboolean APIENTRY glValidBackBufferHint (GLint, GLint, GLsizei, GLsizei);
264 #endif /* GL_GLEXT_PROTOTYPES */
265 typedef void (APIENTRY * PFNGLWINDOWBACKBUFFERHINTPROC) (void);
266 typedef GLboolean (APIENTRY * PFNGLVALIDBACKBUFFERHINTPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
267 #endif
268 
269 /*
270  * EXT
271  */
272 
273 #ifndef GL_EXT_depth_bounds_test
274 #define GL_DEPTH_BOUNDS_TEST_EXT          0x8890
275 #define GL_DEPTH_BOUNDS_EXT               0x8891
276 #endif
277 
278 #ifndef GL_EXT_fragment_lighting
279 #define GL_FRAGMENT_LIGHTING_EXT                               0x8400
280 #define GL_FRAGMENT_COLOR_MATERIAL_EXT                         0x8401
281 #define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT                    0x8402
282 #define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT               0x8403
283 #define GL_MAX_FRAGMENT_LIGHTS_EXT                             0x8404
284 #define GL_MAX_ACTIVE_LIGHTS_EXT                               0x8405
285 #define GL_CURRENT_RASTER_NORMAL_EXT                           0x8406
286 #define GL_LIGHT_ENV_MODE_EXT                                  0x8407
287 #define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT               0x8408
288 #define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT                   0x8409
289 #define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT                    0x840A
290 #define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT       0x840B
291 #define GL_FRAGMENT_LIGHT0_EXT                                 0x840C
292 #define GL_FRAGMENT_LIGHT1_EXT                                 0x840D
293 #define GL_FRAGMENT_LIGHT2_EXT                                 0x840E
294 #define GL_FRAGMENT_LIGHT3_EXT                                 0x840F
295 #define GL_FRAGMENT_LIGHT4_EXT                                 0x8410
296 #define GL_FRAGMENT_LIGHT5_EXT                                 0x8411
297 #define GL_FRAGMENT_LIGHT6_EXT                                 0x8412
298 #define GL_FRAGMENT_LIGHT7_EXT                                 0x8413
299 #endif
300 
301 #ifndef GL_EXT_multitexture
302 #define GL_SELECTED_TEXTURE_EXT           0x83C0
303 #define GL_SELECTED_TEXTURE_COORD_SET_EXT 0x83C1
304 #define GL_SELECTED_TEXTURE_TRANSFORM_EXT 0x83C2
305 #define GL_MAX_TEXTURES_EXT               0x83C3
306 #define GL_MAX_TEXTURE_COORD_SETS_EXT     0x83C4
307 #define GL_TEXTURE_ENV_COORD_SET_EXT      0x83C5
308 #define GL_TEXTURE0_EXT                   0x83C6
309 #define GL_TEXTURE1_EXT                   0x83C7
310 #define GL_TEXTURE2_EXT                   0x83C8
311 #define GL_TEXTURE3_EXT                   0x83C9
312 #define GL_TEXTURE4_EXT                   0x83CA
313 #define GL_TEXTURE5_EXT                   0x83CB
314 #define GL_TEXTURE6_EXT                   0x83CC
315 #define GL_TEXTURE7_EXT                   0x83CD
316 #define GL_TEXTURE8_EXT                   0x83CE
317 #define GL_TEXTURE9_EXT                   0x83CF
318 #define GL_TEXTURE10_EXT                  0x83D0
319 #define GL_TEXTURE11_EXT                  0x83D1
320 #define GL_TEXTURE12_EXT                  0x83D2
321 #define GL_TEXTURE13_EXT                  0x83D3
322 #define GL_TEXTURE14_EXT                  0x83D4
323 #define GL_TEXTURE15_EXT                  0x83D5
324 #define GL_TEXTURE16_EXT                  0x83D6
325 #define GL_TEXTURE17_EXT                  0x83D7
326 #define GL_TEXTURE18_EXT                  0x83D8
327 #define GL_TEXTURE19_EXT                  0x83D9
328 #define GL_TEXTURE20_EXT                  0x83DA
329 #define GL_TEXTURE21_EXT                  0x83DB
330 #define GL_TEXTURE22_EXT                  0x83DC
331 #define GL_TEXTURE23_EXT                  0x83DD
332 #define GL_TEXTURE24_EXT                  0x83DE
333 #define GL_TEXTURE25_EXT                  0x83DF
334 #define GL_TEXTURE26_EXT                  0x83E0
335 #define GL_TEXTURE27_EXT                  0x83E1
336 #define GL_TEXTURE28_EXT                  0x83E2
337 #define GL_TEXTURE29_EXT                  0x83E3
338 #define GL_TEXTURE30_EXT                  0x83E4
339 #define GL_TEXTURE31_EXT                  0x83E5
340 #endif
341 
342 /* unknown */
343 #ifndef GL_EXT_scene_marker
344 /*
345 #define GL_SCENE_REQUIRED_EXT             0
346 */
347 #endif
348 
349 #ifndef GL_EXT_texgen_reflection
350 #define GL_NORMAL_MAP_EXT                 0x8511
351 #define GL_REFLECTION_MAP_EXT             0x8512
352 #endif
353 
354 #ifndef GL_EXT_texture_edge_clamp
355 #define GL_CLAMP_TO_EDGE_EXT              0x812F
356 #endif
357 
358 #ifndef GL_EXT_texture_rectangle
359 #define GL_TEXTURE_RECTANGLE_EXT          0x84F5
360 #define GL_TEXTURE_BINDING_RECTANGLE_EXT  0x84F6
361 #define GL_PROXY_TEXTURE_RECTANGLE_EXT    0x84F7
362 #define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8
363 #endif
364 
365 #ifndef GL_EXT_depth_bounds_test
366 #define GL_EXT_depth_bounds_test 1
367 #ifdef GL_GLEXT_PROTOTYPES
368 GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd);
369 #endif /* GL_GLEXT_PROTOTYPES */
370 typedef void (APIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax);
371 #endif
372 
373 #ifndef GL_EXT_fragment_lighting
374 #define GL_EXT_fragment_lighting 1
375 #ifdef GL_GLEXT_PROTOTYPES
376 GLAPI void APIENTRY glFragmentLightModelfEXT (GLenum, GLfloat);
377 GLAPI void APIENTRY glFragmentLightModelfvEXT (GLenum, GLfloat *);
378 GLAPI void APIENTRY glFragmentLightModeliEXT (GLenum, GLint);
379 GLAPI void APIENTRY glFragmentLightModelivEXT (GLenum, GLint *);
380 GLAPI void APIENTRY glFragmentLightfEXT (GLenum, GLenum, GLfloat);
381 GLAPI void APIENTRY glFragmentLightfvEXT (GLenum, GLenum, GLfloat *);
382 GLAPI void APIENTRY glFragmentLightiEXT (GLenum, GLenum, GLint);
383 GLAPI void APIENTRY glFragmentLightivEXT (GLenum, GLenum, GLint *);
384 GLAPI void APIENTRY glGetFragmentLightfvEXT (GLenum, GLenum, GLfloat *);
385 GLAPI void APIENTRY glGetFragmentLightivEXT (GLenum, GLenum, GLint *);
386 GLAPI void APIENTRY glFragmentMaterialfEXT (GLenum, GLenum, const GLfloat);
387 GLAPI void APIENTRY glFragmentMaterialfvEXT (GLenum, GLenum, const GLfloat *);
388 GLAPI void APIENTRY glFragmentMaterialiEXT (GLenum, GLenum, const GLint);
389 GLAPI void APIENTRY glFragmentMaterialivEXT (GLenum, GLenum, const GLint *);
390 GLAPI void APIENTRY glFragmentColorMaterialEXT (GLenum, GLenum);
391 GLAPI void APIENTRY glGetFragmentMaterialfvEXT (GLenum, GLenum, const GLfloat *);
392 GLAPI void APIENTRY glGetFragmentMaterialivEXT (GLenum, GLenum, const GLint *);
393 GLAPI void APIENTRY glLightEnviEXT (GLenum, GLint);
394 #endif /* GL_GLEXT_PROTOTYPES */
395 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFEXTPROC) (GLenum pname, GLfloat param);
396 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVEXTPROC) (GLenum pname, GLfloat *params);
397 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIEXTPROC) (GLenum pname, GLint param);
398 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVEXTPROC) (GLenum pname, GLint *params);
399 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFEXTPROC) (GLenum light, GLenum pname, GLfloat param);
400 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat *params);
401 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIEXTPROC) (GLenum light, GLenum pname, GLint param);
402 typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint *params);
403 typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVEXTPROC) (GLenum light, GLenum pname, GLfloat *params);
404 typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVEXTPROC) (GLenum light, GLenum pname, GLint *params);
405 typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFEXTPROC) (GLenum face, GLenum pname, const GLfloat param);
406 typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat *params);
407 typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIEXTPROC) (GLenum face, GLenum pname, const GLint param);
408 typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint *params);
409 typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALEXTPROC) (GLenum face, GLenum mode);
410 typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVEXTPROC) (GLenum face, GLenum pname, const GLfloat *params);
411 typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVEXTPROC) (GLenum face, GLenum pname, const GLint *params);
412 typedef void (APIENTRY * PFNGLLIGHTENVIEXTPROC) (GLenum pname, GLint param);
413 #endif
414 
415 #ifndef GL_EXT_multitexture
416 #define GL_EXT_multitexture 1
417 #ifdef GL_GLEXT_PROTOTYPES
418 GLAPI void APIENTRY glMultiTexCoord1dEXT (GLenum, GLdouble);
419 GLAPI void APIENTRY glMultiTexCoord1dvEXT (GLenum, const GLdouble *);
420 GLAPI void APIENTRY glMultiTexCoord1fEXT (GLenum, GLfloat);
421 GLAPI void APIENTRY glMultiTexCoord1fvEXT (GLenum, const GLfloat *);
422 GLAPI void APIENTRY glMultiTexCoord1iEXT (GLenum, GLint);
423 GLAPI void APIENTRY glMultiTexCoord1ivEXT (GLenum, const GLint *);
424 GLAPI void APIENTRY glMultiTexCoord1sEXT (GLenum, GLshort);
425 GLAPI void APIENTRY glMultiTexCoord1svEXT (GLenum, const GLshort *);
426 GLAPI void APIENTRY glMultiTexCoord2dEXT (GLenum, GLdouble, GLdouble);
427 GLAPI void APIENTRY glMultiTexCoord2dvEXT (GLenum, const GLdouble *);
428 GLAPI void APIENTRY glMultiTexCoord2fEXT (GLenum, GLfloat, GLfloat);
429 GLAPI void APIENTRY glMultiTexCoord2fvEXT (GLenum, const GLfloat *);
430 GLAPI void APIENTRY glMultiTexCoord2iEXT (GLenum, GLint, GLint);
431 GLAPI void APIENTRY glMultiTexCoord2ivEXT (GLenum, const GLint *);
432 GLAPI void APIENTRY glMultiTexCoord2sEXT (GLenum, GLshort, GLshort);
433 GLAPI void APIENTRY glMultiTexCoord2svEXT (GLenum, const GLshort *);
434 GLAPI void APIENTRY glMultiTexCoord3dEXT (GLenum, GLdouble, GLdouble, GLdouble);
435 GLAPI void APIENTRY glMultiTexCoord3dvEXT (GLenum, const GLdouble *);
436 GLAPI void APIENTRY glMultiTexCoord3fEXT (GLenum, GLfloat, GLfloat, GLfloat);
437 GLAPI void APIENTRY glMultiTexCoord3fvEXT (GLenum, const GLfloat *);
438 GLAPI void APIENTRY glMultiTexCoord3iEXT (GLenum, GLint, GLint, GLint);
439 GLAPI void APIENTRY glMultiTexCoord3ivEXT (GLenum, const GLint *);
440 GLAPI void APIENTRY glMultiTexCoord3sEXT (GLenum, GLshort, GLshort, GLshort);
441 GLAPI void APIENTRY glMultiTexCoord3svEXT (GLenum, const GLshort *);
442 GLAPI void APIENTRY glMultiTexCoord4dEXT (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
443 GLAPI void APIENTRY glMultiTexCoord4dvEXT (GLenum, const GLdouble *);
444 GLAPI void APIENTRY glMultiTexCoord4fEXT (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
445 GLAPI void APIENTRY glMultiTexCoord4fvEXT (GLenum, const GLfloat *);
446 GLAPI void APIENTRY glMultiTexCoord4iEXT (GLenum, GLint, GLint, GLint, GLint);
447 GLAPI void APIENTRY glMultiTexCoord4ivEXT (GLenum, const GLint *);
448 GLAPI void APIENTRY glMultiTexCoord4sEXT (GLenum, GLshort, GLshort, GLshort, GLshort);
449 GLAPI void APIENTRY glMultiTexCoord4svEXT (GLenum, const GLshort *);
450 GLAPI void APIENTRY glInterleavedTextureCoordSetsEXT (GLint);
451 GLAPI void APIENTRY glSelectTextureEXT (GLenum);
452 GLAPI void APIENTRY glSelectTextureCoordSetEXT (GLenum);
453 GLAPI void APIENTRY glSelectTextureTransformEXT (GLenum);
454 #endif /* GL_GLEXT_PROTOTYPES */
455 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DEXTPROC) (GLenum target, GLdouble s);
456 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVEXTPROC) (GLenum target, const GLdouble *v);
457 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FEXTPROC) (GLenum target, GLfloat s);
458 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVEXTPROC) (GLenum target, const GLfloat *v);
459 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IEXTPROC) (GLenum target, GLint s);
460 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVEXTPROC) (GLenum target, const GLint *v);
461 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SEXTPROC) (GLenum target, GLshort s);
462 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVEXTPROC) (GLenum target, const GLshort *v);
463 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DEXTPROC) (GLenum target, GLdouble s, GLdouble t);
464 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVEXTPROC) (GLenum target, const GLdouble *v);
465 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FEXTPROC) (GLenum target, GLfloat s, GLfloat t);
466 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVEXTPROC) (GLenum target, const GLfloat *v);
467 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IEXTPROC) (GLenum target, GLint s, GLint t);
468 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVEXTPROC) (GLenum target, const GLint *v);
469 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SEXTPROC) (GLenum target, GLshort s, GLshort t);
470 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVEXTPROC) (GLenum target, const GLshort *v);
471 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DEXTPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
472 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVEXTPROC) (GLenum target, const GLdouble *v);
473 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FEXTPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
474 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVEXTPROC) (GLenum target, const GLfloat *v);
475 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IEXTPROC) (GLenum target, GLint s, GLint t, GLint r);
476 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVEXTPROC) (GLenum target, const GLint *v);
477 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SEXTPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
478 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVEXTPROC) (GLenum target, const GLshort *v);
479 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DEXTPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
480 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVEXTPROC) (GLenum target, const GLdouble *v);
481 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FEXTPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
482 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVEXTPROC) (GLenum target, const GLfloat *v);
483 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IEXTPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
484 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVEXTPROC) (GLenum target, const GLint *v);
485 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SEXTPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
486 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVEXTPROC) (GLenum target, const GLshort *v);
487 typedef void (APIENTRY * PFNGLINTERLEAVEDTEXTURECOORDSETSEXTPROC) (GLint factor);
488 typedef void (APIENTRY * PFNGLSELECTTEXTUREEXTPROC) (GLenum target);
489 typedef void (APIENTRY * PFNGLSELECTTEXTURECOORDSETEXTPROC) (GLenum target);
490 typedef void (APIENTRY * PFNGLSELECTTEXTURETRANSFORMEXTPROC) (GLenum target);
491 #endif
492 
493 /* unknown */
494 #ifndef GL_EXT_scene_marker
495 /* #define GL_EXT_scene_marker 1 */
496 #ifdef GL_GLEXT_PROTOTYPES
497 GLAPI void APIENTRY glBeginSceneEXT (void);
498 GLAPI void APIENTRY glEndSceneEXT (void);
499 #endif /* GL_GLEXT_PROTOTYPES */
500 typedef void (APIENTRY * PFNGLBEGINSCENEEXTPROC) (void);
501 typedef void (APIENTRY * PFNGLENDSCENEEXTPROC) (void);
502 #endif
503 
504 #ifndef GL_EXT_texgen_reflection
505 #define GL_EXT_texgen_reflection 1
506 #endif
507 
508 #ifndef GL_EXT_texture_edge_clamp
509 #define GL_EXT_texture_edge_clamp 1
510 #endif
511 
512 #ifndef GL_EXT_texture_rectangle
513 #define GL_EXT_texture_rectangle 1
514 #endif
515 
516 /*
517  * HP
518  */
519 
520 /*
521  * IBM
522  */
523 
524 #ifndef GL_IBM_static_data
525 #define GL_ALL_STATIC_DATA_IBM            103060
526 #define GL_STATIC_VERTEX_ARRAY_IBM        103061
527 #endif
528 
529 #ifndef GL_IBM_static_data
530 #define GL_IBM_static_data 1
531 #ifdef GL_GLEXT_PROTOTYPES
532 GLAPI void APIENTRY glFlushStaticDataIBM (GLenum);
533 #endif /* GL_GLEXT_PROTOTYPES */
534 typedef void (APIENTRY * PFNGLFLUSHSTATICDATAIBMPROC) (GLenum target);
535 #endif
536 
537 /*
538  * INGR
539  */
540 
541 /*
542  * INTEL
543  */
544 
545 /*
546  * KTX
547  */
548 
549 #ifndef GL_KTX_buffer_region
550 #define GL_KTX_FRONT_REGION               0x0
551 #define GL_KTX_BACK_REGION                0x1
552 #define GL_KTX_Z_REGION                   0x2
553 #define GL_KTX_STENCIL_REGION             0x3
554 #endif
555 
556 #ifndef GL_KTX_buffer_region
557 #define GL_KTX_buffer_region 1
558 #ifdef GL_GLEXT_PROTOTYPES
559 GLAPI GLuint APIENTRY glBufferRegionEnabled (void);
560 GLAPI GLuint APIENTRY glNewBufferRegion (GLenum);
561 GLAPI void APIENTRY glDeleteBufferRegion (GLenum);
562 GLAPI void APIENTRY glReadBufferRegion (GLuint, GLint, GLint, GLsizei, GLsizei);
563 GLAPI void APIENTRY glDrawBufferRegion (GLuint, GLint, GLint, GLsizei, GLsizei, GLint, GLint);
564 #endif /* GL_GLEXT_PROTOTYPES */
565 typedef GLuint (APIENTRY * PFNGLBUFFERREGIONENABLEDPROC) (void);
566 typedef GLuint (APIENTRY * PFNGLNEWBUFFERREGIONPROC) (GLenum region);
567 typedef void (APIENTRY * PFNGLDELETEBUFFERREGIONPROC) (GLenum region);
568 typedef void (APIENTRY * PFNGLREADBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
569 typedef void (APIENTRY * PFNGLDRAWBUFFERREGIONPROC) (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
570 #endif
571 
572 /*
573  * MESA
574  */
575 
576 /*
577  * NV
578  */
579 
580 #ifndef GL_NV_element_array
581 #define GL_ELEMENT_ARRAY_TYPE_NV          0x8769
582 #define GL_ELEMENT_ARRAY_POINTER_NV       0x876A
583 #endif
584 
585 #ifndef GL_NV_stencil_two_side
586 #define GL_STENCIL_TEST_TWO_SIDE_NV       0x8910
587 #define GL_ACTIVE_STENCIL_FACE_NV         0x8911
588 #endif
589 
590 #ifndef GL_NV_element_array
591 #define GL_NV_element_array 1
592 #ifdef GL_GLEXT_PROTOTYPES
593 GLAPI void APIENTRY glElementPointerNV (GLenum, const GLvoid *);
594 GLAPI void APIENTRY glDrawElementArrayNV (GLenum, GLint, GLsizei);
595 GLAPI void APIENTRY glDrawRangeElementArrayNV (GLenum, GLuint, GLuint, GLint, GLsizei);
596 GLAPI void APIENTRY glMultiDrawElementArrayNV (GLenum, const GLint *, const GLsizei *, GLsizei);
597 GLAPI void APIENTRY glMultiDrawRangeElementArrayNV (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei);
598 #endif /* GL_GLEXT_PROTOTYPES */
599 typedef void (APIENTRY * PFNGLELEMENTPOINTERNVPROC) (GLenum type, const GLvoid *pointer);
600 typedef void (APIENTRY * PFNGLDRAWELEMENTARRAYNVPROC) (GLenum mode, GLint first, GLsizei count);
601 typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYNVPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
602 typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTARRAYNVPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
603 typedef void (APIENTRY * PFNGLMULTIDRAWRANGEELEMENTARRAYNVPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
604 #endif
605 
606 #ifndef GL_NV_stencil_two_side
607 #define GL_NV_stencil_two_side 1
608 #ifdef GL_GLEXT_PROTOTYPES
609 GLAPI void APIENTRY glActiveStencilFaceNV (GLenum);
610 #endif /* GL_GLEXT_PROTOTYPES */
611 typedef void (APIENTRY * PFNGLACTIVESTENCILFACENVPROC) (GLenum face);
612 #endif
613 
614 /*
615  * OML
616  */
617 
618 /*
619  * PGI
620  */
621 
622 /*
623  * REND
624  */
625 
626 /*
627  * S3
628  */
629 
630 /*
631  * SGI
632  */
633 
634 #ifndef GL_SGI_texture_edge_clamp
635 #define GL_CLAMP_TO_EDGE_SGI              0x812F
636 #endif
637 
638 #ifndef GL_SGI_texture_edge_clamp
639 #define GL_SGI_texture_edge_clamp 1
640 #endif
641 
642 /*
643  * SGIS
644  */
645 
646 #ifndef GL_SGIS_color_range
647 #define EXTENDED_RANGE_SGIS             0x85A5
648 #define MIN_RED_SGIS                    0x85A6
649 #define MAX_RED_SGIS                    0x85A7
650 #define MIN_GREEN_SGIS                  0x85A8
651 #define MAX_GREEN_SGIS                  0x85A9
652 #define MIN_BLUE_SGIS                   0x85AA
653 #define MAX_BLUE_SGIS                   0x85AB
654 #define MIN_ALPHA_SGIS                  0x85AC
655 #define MAX_ALPHA_SGIS                  0x85AD
656 #endif
657 
658 #ifndef GL_SGIS_multitexture
659 #define GL_SELECTED_TEXTURE_SGIS	   0x835C
660 #define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x835D
661 #define GL_MAX_TEXTURES_SGIS		   0x835E
662 #define GL_TEXTURE0_SGIS                   0x835F
663 #define GL_TEXTURE1_SGIS                   0x8360
664 #define GL_TEXTURE2_SGIS                   0x8361
665 #define GL_TEXTURE3_SGIS                   0x8362
666 #define GL_TEXTURE4_SGIS                   0x8363
667 #define GL_TEXTURE5_SGIS                   0x8364
668 #define GL_TEXTURE6_SGIS                   0x8365
669 #define GL_TEXTURE7_SGIS                   0x8366
670 #define GL_TEXTURE8_SGIS                   0x8367
671 #define GL_TEXTURE9_SGIS                   0x8368
672 #define GL_TEXTURE10_SGIS                  0x8369
673 #define GL_TEXTURE11_SGIS                  0x836A
674 #define GL_TEXTURE12_SGIS                  0x836B
675 #define GL_TEXTURE13_SGIS                  0x836C
676 #define GL_TEXTURE14_SGIS                  0x836D
677 #define GL_TEXTURE15_SGIS                  0x836E
678 #define GL_TEXTURE16_SGIS                  0x836F
679 #define GL_TEXTURE17_SGIS                  0x8370
680 #define GL_TEXTURE18_SGIS                  0x8371
681 #define GL_TEXTURE19_SGIS                  0x8372
682 #define GL_TEXTURE20_SGIS                  0x8373
683 #define GL_TEXTURE21_SGIS                  0x8374
684 #define GL_TEXTURE22_SGIS                  0x8375
685 #define GL_TEXTURE23_SGIS                  0x8376
686 #define GL_TEXTURE24_SGIS                  0x8377
687 #define GL_TEXTURE25_SGIS                  0x8378
688 #define GL_TEXTURE26_SGIS                  0x8379
689 #define GL_TEXTURE27_SGIS                  0x837A
690 #define GL_TEXTURE28_SGIS                  0x837B
691 #define GL_TEXTURE29_SGIS                  0x837C
692 #define GL_TEXTURE30_SGIS                  0x837D
693 #define GL_TEXTURE31_SGIS                  0x837E
694 #define GL_TEXTURE_COORD_SET_SOURCE_SGIS   0x8363
695 #endif
696 
697 #ifndef GL_SGIS_color_range
698 #define GL_SGIS_color_range 1
699 #endif
700 
701 #ifndef GL_SGIS_multitexture
702 #define GL_SGIS_multitexture 1
703 #ifdef GL_GLEXT_PROTOTYPES
704 GLAPI void APIENTRY glMultiTexCoord1dSGIS (GLenum, GLdouble);
705 GLAPI void APIENTRY glMultiTexCoord1dvSGIS (GLenum, const GLdouble *);
706 GLAPI void APIENTRY glMultiTexCoord1fSGIS (GLenum, GLfloat);
707 GLAPI void APIENTRY glMultiTexCoord1fvSGIS (GLenum, const GLfloat *);
708 GLAPI void APIENTRY glMultiTexCoord1iSGIS (GLenum, GLint);
709 GLAPI void APIENTRY glMultiTexCoord1ivSGIS (GLenum, const GLint *);
710 GLAPI void APIENTRY glMultiTexCoord1sSGIS (GLenum, GLshort);
711 GLAPI void APIENTRY glMultiTexCoord1svSGIS (GLenum, const GLshort *);
712 GLAPI void APIENTRY glMultiTexCoord2dSGIS (GLenum, GLdouble, GLdouble);
713 GLAPI void APIENTRY glMultiTexCoord2dvSGIS (GLenum, const GLdouble *);
714 GLAPI void APIENTRY glMultiTexCoord2fSGIS (GLenum, GLfloat, GLfloat);
715 GLAPI void APIENTRY glMultiTexCoord2fvSGIS (GLenum, const GLfloat *);
716 GLAPI void APIENTRY glMultiTexCoord2iSGIS (GLenum, GLint, GLint);
717 GLAPI void APIENTRY glMultiTexCoord2ivSGIS (GLenum, const GLint *);
718 GLAPI void APIENTRY glMultiTexCoord2sSGIS (GLenum, GLshort, GLshort);
719 GLAPI void APIENTRY glMultiTexCoord2svSGIS (GLenum, const GLshort *);
720 GLAPI void APIENTRY glMultiTexCoord3dSGIS (GLenum, GLdouble, GLdouble, GLdouble);
721 GLAPI void APIENTRY glMultiTexCoord3dvSGIS (GLenum, const GLdouble *);
722 GLAPI void APIENTRY glMultiTexCoord3fSGIS (GLenum, GLfloat, GLfloat, GLfloat);
723 GLAPI void APIENTRY glMultiTexCoord3fvSGIS (GLenum, const GLfloat *);
724 GLAPI void APIENTRY glMultiTexCoord3iSGIS (GLenum, GLint, GLint, GLint);
725 GLAPI void APIENTRY glMultiTexCoord3ivSGIS (GLenum, const GLint *);
726 GLAPI void APIENTRY glMultiTexCoord3sSGIS (GLenum, GLshort, GLshort, GLshort);
727 GLAPI void APIENTRY glMultiTexCoord3svSGIS (GLenum, const GLshort *);
728 GLAPI void APIENTRY glMultiTexCoord4dSGIS (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
729 GLAPI void APIENTRY glMultiTexCoord4dvSGIS (GLenum, const GLdouble *);
730 GLAPI void APIENTRY glMultiTexCoord4fSGIS (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
731 GLAPI void APIENTRY glMultiTexCoord4fvSGIS (GLenum, const GLfloat *);
732 GLAPI void APIENTRY glMultiTexCoord4iSGIS (GLenum, GLint, GLint, GLint, GLint);
733 GLAPI void APIENTRY glMultiTexCoord4ivSGIS (GLenum, const GLint *);
734 GLAPI void APIENTRY glMultiTexCoord4sSGIS (GLenum, GLshort, GLshort, GLshort, GLshort);
735 GLAPI void APIENTRY glMultiTexCoord4svSGIS (GLenum, const GLshort *);
736 GLAPI void APIENTRY glMultiTexCoordPointerSGIS (GLenum, GLint, GLenum, GLsizei, const void *);
737 GLAPI void APIENTRY glSelectTextureSGIS (GLenum);
738 GLAPI void APIENTRY glSelectTextureCoordSetSGIS (GLenum);
739 #endif /* GL_GLEXT_PROTOTYPES */
740 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DSGISPROC) (GLenum target, GLdouble s);
741 typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVSGISPROC) (GLenum target, const GLdouble *v);
742 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FSGISPROC) (GLenum target, GLfloat s);
743 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVSGISPROC) (GLenum target, const GLfloat *v);
744 typedef void (APIENTRY * PFNGLMULTITEXCOORD1ISGISPROC) (GLenum target, GLint s);
745 typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVSGISPROC) (GLenum target, const GLint *v);
746 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SSGISPROC) (GLenum target, GLshort s);
747 typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVSGISPROC) (GLenum target, const GLshort *v);
748 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DSGISPROC) (GLenum target, GLdouble s, GLdouble t);
749 typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVSGISPROC) (GLenum target, const GLdouble *v);
750 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FSGISPROC) (GLenum target, GLfloat s, GLfloat t);
751 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVSGISPROC) (GLenum target, const GLfloat *v);
752 typedef void (APIENTRY * PFNGLMULTITEXCOORD2ISGISPROC) (GLenum target, GLint s, GLint t);
753 typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVSGISPROC) (GLenum target, const GLint *v);
754 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SSGISPROC) (GLenum target, GLshort s, GLshort t);
755 typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVSGISPROC) (GLenum target, const GLshort *v);
756 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DSGISPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
757 typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVSGISPROC) (GLenum target, const GLdouble *v);
758 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FSGISPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
759 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVSGISPROC) (GLenum target, const GLfloat *v);
760 typedef void (APIENTRY * PFNGLMULTITEXCOORD3ISGISPROC) (GLenum target, GLint s, GLint t, GLint r);
761 typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVSGISPROC) (GLenum target, const GLint *v);
762 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SSGISPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
763 typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVSGISPROC) (GLenum target, const GLshort *v);
764 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DSGISPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
765 typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVSGISPROC) (GLenum target, const GLdouble *v);
766 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FSGISPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
767 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVSGISPROC) (GLenum target, const GLfloat *v);
768 typedef void (APIENTRY * PFNGLMULTITEXCOORD4ISGISPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
769 typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVSGISPROC) (GLenum target, const GLint *v);
770 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SSGISPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
771 typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVSGISPROC) (GLenum target, const GLshort *v);
772 typedef void (APIENTRY * PFNGLMULTITEXCOORDPOINTERSGISPROC) (GLenum target, GLint size, GLenum type, GLsizei stride, const void *pointer);
773 typedef void (APIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum target);
774 typedef void (APIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum target);
775 #endif
776 
777 /*
778  * SGIX
779  */
780 
781 /* unknown */
782 #ifndef GL_SGIX_fog_texture
783 /*
784 #define GL_FRAGMENT_FOG_SGIX              0
785 #define GL_TEXTURE_FOG_SGIX               0
786 #define GL_FOG_PATCHY_FACTOR_SGIX         0
787 */
788 #endif
789 
790 /* unknown */
791 #ifndef GL_SGIX_pixel_texture_bits
792 /*
793 #define GL_COLOR_TO_TEXTURE_COORD_SGIX    0
794 #define GL_COLOR_BIT_PATTERN_SGIX         0
795 #define GL_COLOR_VALUE_SGIX               0
796 */
797 #endif
798 
799 #ifndef GL_SGIX_texture_range
800 #define GL_RGB_SIGNED_SGIX                         0x85E0
801 #define GL_RGBA_SIGNED_SGIX                        0x85E1
802 #define GL_ALPHA_SIGNED_SGIX                       0x85E2
803 #define GL_LUMINANCE_SIGNED_SGIX                   0x85E3
804 #define GL_INTENSITY_SIGNED_SGIX                   0x85E4
805 #define GL_LUMINANCE_ALPHA_SIGNED_SGIX             0x85E5
806 #define GL_RGB16_SIGNED_SGIX                       0x85E6
807 #define GL_RGBA16_SIGNED_SGIX                      0x85E7
808 #define GL_ALPHA16_SIGNED_SGIX                     0x85E8
809 #define GL_LUMINANCE16_SIGNED_SGIX                 0x85E9
810 #define GL_INTENSITY16_SIGNED_SGIX                 0x85EA
811 #define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX         0x85EB
812 #define GL_RGB_EXTENDED_RANGE_SGIX                 0x85EC
813 #define GL_RGBA_EXTENDED_RANGE_SGIX                0x85ED
814 #define GL_ALPHA_EXTENDED_RANGE_SGIX               0x85EE
815 #define GL_LUMINANCE_EXTENDED_RANGE_SGIX           0x85EF
816 #define GL_INTENSITY_EXTENDED_RANGE_SGIX           0x85F0
817 #define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX     0x85F1
818 #define GL_RGB16_EXTENDED_RANGE_SGIX               0x85F2
819 #define GL_RGBA16_EXTENDED_RANGE_SGIX              0x85F3
820 #define GL_ALPHA16_EXTENDED_RANGE_SGIX             0x85F4
821 #define GL_LUMINANCE16_EXTENDED_RANGE_SGIX         0x85F5
822 #define GL_INTENSITY16_EXTENDED_RANGE_SGIX         0x85F6
823 #define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85F7
824 #define GL_MIN_LUMINANCE_SGIS                      0x85F8
825 #define GL_MAX_LUMINANCE_SGIS                      0x85F9
826 #define GL_MIN_INTENSITY_SGIS                      0x85FA
827 #define GL_MAX_INTENSITY_SGIS                      0x85FB
828 #endif
829 
830 #ifndef GL_SGIX_vertex_preclip_hint
831 /* defined in glext.h
832 #define GL_VERTEX_PRECLIP_HINT_SGIX       0x83EF
833 */
834 #endif
835 
836 /* unknown */
837 #ifndef GL_SGIX_fog_texture
838 /* #define GL_SGIX_fog_texture 1 */
839 #ifdef GL_GLEXT_PROTOTYPES
840 GLAPI void APIENTRY glTextureFogSGIX (GLenum pname);
841 #endif /* GL_GLEXT_PROTOTYPES */
842 typedef void (APIENTRY * PFNGLTEXTUREFOGSGIXPROC) (GLenum pname);
843 #endif
844 
845 /* unknown */
846 #ifndef GL_SGIX_pixel_texture_bits
847 /* #define GL_SGIX_pixel_texture_bits 1 */
848 #endif
849 
850 #ifndef GL_SGIX_texture_range
851 #define GL_SGIX_texture_range 1
852 #endif
853 
854 #ifndef GL_SGIX_vertex_preclip_hint
855 #define GL_SGIX_vertex_preclip_hint 1
856 #endif
857 
858 /*
859  * SUN
860  */
861 
862 #ifndef GL_SUN_multi_draw_arrays
863 #define GL_SUN_multi_draw_arrays 1
864 #ifdef GL_GLEXT_PROTOTYPES
865 GLAPI void APIENTRY glMultiDrawArraysSUN (GLenum, GLint *, GLsizei *, GLsizei);
866 GLAPI void APIENTRY glMultiDrawElementsSUN (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
867 #endif /* GL_GLEXT_PROTOTYPES */
868 typedef void (APIENTRY * PFNGLMULTIDRAWARRAYSSUNPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
869 typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTSSUNPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
870 #endif
871 
872 /*
873  * SUNX
874  */
875 
876 /*
877  * WIN
878  */
879 
880 #ifndef GL_WIN_swap_hint
881 #define GL_WIN_swap_hint 1
882 #ifdef GL_GLEXT_PROTOTYPES
883 GLAPI void APIENTRY glAddSwapHintRectWIN (GLint, GLint, GLsizei, GLsizei);
884 #endif /* GL_GLEXT_PROTOTYPES */
885 typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
886 #endif
887 
888 #ifdef __cplusplus
889 }
890 #endif
891 
892 #endif /* __glext_extra_h_ */
893