1#lang mzscheme
2(require mzlib/foreign
3         ffi/winapi
4         "gl-types.rkt"
5         "gl-vectors.rkt"
6         "init.rkt")
7
8(unsafe!)
9
10(define stype (system-type))
11
12(define gl-lib (case stype
13                 [(windows) (ffi-lib "opengl32")]
14                 [(macosx) (ffi-lib "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL")]
15                 [else (ffi-lib "libGL" '("1" ""))]))
16(define glu-lib (case stype
17                  [(windows) (ffi-lib "glu32")]
18                  [(macosx) (ffi-lib "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU")]
19                  [else (ffi-lib "libGLU" '("1" ""))]))
20
21(define win32?
22  (and (eq? 'windows stype)
23       (equal? "win32\\i386" (path->string (system-library-subpath #f)))))
24
25(define-syntax _fun*
26  (syntax-rules ()
27    [(_fun* x ...)
28     (_fun #:abi winapi x ...)]))
29
30(define wglGetProcAddress
31  (if (eq? 'windows stype)
32      (get-ffi-obj 'wglGetProcAddress gl-lib (_fun* _string -> _fpointer))
33      (lambda (x) #f)))
34
35(define (unavailable name fun-type)
36  (if (eq? 'windows stype)
37      ;; Windows: try to get proc via wglGetProcAddress;
38      ;; note that we need to delay the lookup until the
39      ;; function is called, because wglGetProcAddress is
40      ;; sensitive to the current GL context
41      (lambda ()
42	 (let ([sname (symbol->string name)])
43	   (lambda args
44	     (let ([f (wglGetProcAddress sname)])
45	       (if f
46		   (apply (function-ptr f fun-type) args)
47		   (error name "unavailable on this system"))))))
48      ;; Other platforms: proc is not available
49      (lambda () (lambda x (error name "unavailable on this system")))))
50
51(define-syntax define-foreign-lib
52  (syntax-rules (->)
53    [(_ lib name type ... ->)
54     (define-foreign-lib lib name type ... -> _void)]
55    [(_ lib name type ...)
56     (begin
57       ;; (printf "~a\n" 'name)
58       (provide name)
59       (define name
60	 (let ([fun-type (_fun* type ...) ])
61	   (get-ffi-obj 'name lib fun-type
62			(unavailable 'name fun-type)))))]))
63
64(define-syntax define-foreign
65  (syntax-rules ()
66    [(_ args ...) (define-foreign-lib gl-lib args ...)]))
67
68(define-for-syntax (get-type x err)
69  (case (syntax-object->datum x)
70    [(b) #'_gl-byte]
71    [(s) #'_gl-short]
72    [(i) #'_gl-int]
73    [(f) #'_gl-float]
74    [(d) #'_gl-double]
75    [(ub) #'_gl-ubyte]
76    [(us) #'_gl-ushort]
77    [(ui) #'_gl-uint]
78    [(bv) #'_gl-bytev]
79    [(sv) #'_gl-shortv]
80    [(iv) #'_gl-intv]
81    [(fv) #'_gl-floatv]
82    [(dv) #'_gl-doublev]
83    [(ubv) #'_gl-ubytev]
84    [(usv) #'_gl-ushortv]
85    [(uiv) #'_gl-uintv]
86    [else (raise-syntax-error #f "unknown GL type abbreviation" err x)]))
87
88(define-for-syntax (get-vtype x err)
89  (case (syntax-object->datum x)
90    [(bv) #'_gl-byte]
91    [(sv) #'_gl-short]
92    [(iv) #'_gl-int]
93    [(fv) #'_gl-float]
94    [(dv) #'_gl-double]
95    [(ubv) #'_gl-ubyte]
96    [(usv) #'_gl-ushort]
97    [(uiv) #'_gl-uint]
98    [else (raise-syntax-error #f "unknown GL type abbreviation" err x)]))
99
100(define-for-syntax (type-map type convert)
101  (syntax-case type (: =)
102    [(label : type) #`(label : #,(type-map #'type convert))]
103    [(type = expr) #`(#,(type-map #'type convert) = expr)]
104    [(label : type = expr) #`(label : #,(type-map #'type convert) = expr)]
105    [_ (convert type)]))
106
107(define-syntax (define-foreign-tparm stx)
108  (syntax-case stx (->)
109    [(_ name (suffix ...) type ...)
110     (let* ([name-sym (syntax-object->datum #'name)]
111            [build-def
112             (lambda (suffix)
113               (with-syntax ([new-name
114                              (datum->syntax-object
115                               #'name
116                               (string->symbol
117                                (format "~a~a"
118                                        name-sym
119                                        (syntax-object->datum suffix)))
120                               #'name)]
121                             [(new-type ...)
122                              (map
123                               (lambda (type)
124                                 (type-map
125                                  type
126                                  (lambda (type)
127                                    (syntax-case type (T outT)
128                                      [T (get-type suffix stx)]
129                                      [(T n)
130                                       #`(_cvector o
131                                                   #,(get-vtype suffix stx)
132                                                   n)]
133                                      [_ type]))))
134                               (syntax->list #'(type ...)))])
135                 #'(define-foreign new-name new-type ...)))])
136       (with-syntax ([(defs ...)
137                      (map build-def (syntax->list #'(suffix ...)))])
138         #'(begin defs ...)))]))
139
140;; 2.5
141(define-foreign glGetError -> _gl-enum)
142
143;; 2.6.1
144(define-foreign glBegin _gl-enum ->)
145(define-foreign glEnd ->)
146
147;; 2.6.2
148(define-foreign glEdgeFlag _gl-boolean ->)
149(define-foreign glEdgeFlagv _gl-booleanv ->)
150
151;; 2.7
152(define-foreign-tparm glVertex2 (s i f d) T T ->)
153(define-foreign-tparm glVertex3 (s i f d) T T T ->)
154(define-foreign-tparm glVertex4 (s i f d) T T T T ->)
155(define-foreign-tparm glVertex2 (sv iv fv dv) T ->)
156(define-foreign-tparm glVertex3 (sv iv fv dv) T ->)
157(define-foreign-tparm glVertex4 (sv iv fv dv) T ->)
158(define-foreign-tparm glTexCoord1 (s i f d) T ->)
159(define-foreign-tparm glTexCoord2 (s i f d) T T ->)
160(define-foreign-tparm glTexCoord3 (s i f d) T T T ->)
161(define-foreign-tparm glTexCoord4 (s i f d) T T T T ->)
162(define-foreign-tparm glTexCoord1 (sv iv fv dv) T ->)
163(define-foreign-tparm glTexCoord2 (sv iv fv dv) T ->)
164(define-foreign-tparm glTexCoord3 (sv iv fv dv) T ->)
165(define-foreign-tparm glTexCoord4 (sv iv fv dv) T ->)
166(define-foreign-tparm glMultiTexCoord1 (s i f d) _gl-enum T ->)
167(define-foreign-tparm glMultiTexCoord2 (s i f d) _gl-enum T T ->)
168(define-foreign-tparm glMultiTexCoord3 (s i f d) _gl-enum T T T ->)
169(define-foreign-tparm glMultiTexCoord4 (s i f d) _gl-enum T T T T ->)
170(define-foreign-tparm glMultiTexCoord1 (sv iv fv dv) _gl-enum T ->)
171(define-foreign-tparm glMultiTexCoord2 (sv iv fv dv) _gl-enum T ->)
172(define-foreign-tparm glMultiTexCoord3 (sv iv fv dv) _gl-enum T ->)
173(define-foreign-tparm glMultiTexCoord4 (sv iv fv dv) _gl-enum T ->)
174(define-foreign-tparm glNormal3 (b s i f d) T T T ->)
175(define-foreign-tparm glNormal3 (bv sv iv fv dv) T ->)
176(define-foreign-tparm glFogCoord (f d) T ->)
177(define-foreign-tparm glFogCoord (fv dv) T ->)
178(define-foreign-tparm glColor3 (b s i f d ub us ui) T T T ->)
179(define-foreign-tparm glColor4 (b s i f d ub us ui) T T T T ->)
180(define-foreign-tparm glColor3 (bv sv iv fv dv ubv usv uiv) T ->)
181(define-foreign-tparm glColor4 (bv sv iv fv dv ubv usv uiv) T ->)
182(define-foreign-tparm glSecondaryColor3 (b s i f d ub us ui) T T T ->)
183(define-foreign-tparm glSecondaryColor3 (bv sv iv fv dv ubv usv uiv) T ->)
184(define-foreign-tparm glIndex (s i f d ub) T ->)
185(define-foreign-tparm glIndex (sv iv fv dv ubv) T ->)
186
187;; 2.8
188#|
189(define-foreign glVertexPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->)
190(define-foreign glNormalPointer _gl-enum _gl-sizei _gl-voidv ->)
191(define-foreign glColorPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->)
192(define-foreign glSecondaryColorPointer
193  _gl-int _gl-enum _gl-sizei _gl-voidv ->)
194(define-foreign glIndexPointer _gl-enum _gl-sizei _gl-voidv ->)
195(define-foreign glFogCoordPointer _gl-enum _gl-sizei _gl-voidv ->)
196(define-foreign glTexCoordPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->)
197(define-foreign glEdgeFlagPointer _gl-sizei _gl-voidv ->)
198(define-foreign glEnableClientState _gl-enum ->)
199(define-foreign glDisableClientState _gl-enum ->)
200(define-foreign glClientActiveTexture _gl-enum ->)
201(define-foreign glArrayElement _gl-int ->)
202(define-foreign glDrawArrays _gl-enum _gl-int _gl-sizei ->)
203(define-foreign glMultiDrawArrays _gl-enum _gl-intv _gl-sizeiv _gl-sizei ->)
204(define-foreign glDrawElements _gl-enum _gl-sizei _gl-enum _gl-voidv ->)
205(define-foreign glMultiDrawElements
206  _gl-enum _gl-sizeiv _gl-enum _gl-voidvv _gl-sizei ->)
207(define-foreign glDrawRangeElements
208  _gl-enum _gl-uint _gl-uint _gl-sizei _gl-enum _gl-voidv ->)
209(define-foreign glInterleavedArrays _gl-enum _gl-sizei _gl-voidv)
210|#
211
212;; 2.9
213#|
214(define-foreign glBindBuffer _gl-enum _gl-uint ->)
215(define-foreign glDeleteBuffers _gl-sizei gl_uintv ->)
216(define-foreign glGenBuffers _gl-sizei gl_uintv ->)
217(define-foreign glBufferData _gl-enum _gl-sizeiptr _gl_voidv _gl-enum ->)
218(define-foreign glBufferSubData _gl-enum _gl-intptr _gl-sizeiptr _gl_voidv ->)
219(define-foreign glMapBuffer _gl-enum _gl-enum -> _gl-voidv)
220(define-foreign glUnmapBuffer _gl-enum -> _gl-boolean)
221|#
222
223;; 2.10
224(define-foreign-tparm glRect (s i f d) T T T T ->)
225(define-foreign-tparm glRect (sv iv fv dv) T ->)
226
227;; 2.11.1
228(define-foreign glDepthRange _gl-clampd _gl-clampd ->)
229(define-foreign glViewport _gl-int _gl-int _gl-sizei _gl-sizei ->)
230
231;; 2.11.2
232(define-foreign glMatrixMode _gl-enum ->)
233(define-foreign glLoadMatrixf _gl-floatv ->)
234(define-foreign glLoadMatrixd _gl-doublev ->)
235(define-foreign glMultMatrixf _gl-floatv ->)
236(define-foreign glMultMatrixd _gl-doublev ->)
237(define-foreign glLoadTransposeMatrixf _gl-floatv ->)
238(define-foreign glLoadTransposeMatrixd _gl-doublev ->)
239(define-foreign glMultTransposeMatrixf _gl-floatv ->)
240(define-foreign glMultTransposeMatrixd _gl-doublev ->)
241(define-foreign glLoadIdentity ->)
242(define-foreign-tparm glRotate (f d) T T T T ->)
243(define-foreign-tparm glTranslate (f d) T T T ->)
244(define-foreign-tparm glScale (f d) T T T ->)
245(define-foreign glFrustum _gl-double _gl-double _gl-double
246                          _gl-double _gl-double _gl-double ->)
247(define-foreign glOrtho _gl-double _gl-double _gl-double
248                        _gl-double _gl-double _gl-double ->)
249(define-foreign glActiveTexture _gl-enum ->)
250(define-foreign glPushMatrix ->)
251(define-foreign glPopMatrix ->)
252
253;; 2.11.3
254(define-foreign glEnable _gl-enum ->)
255(define-foreign glDisable _gl-enum ->)
256
257;; 2.11.4
258(define-foreign-tparm glTexGen (i f d) _gl-enum _gl-enum T ->)
259(define-foreign-tparm glTexGen (iv fv dv) _gl-enum _gl-enum T ->)
260
261;; 2.12
262(define-foreign glClipPlane _gl-enum _gl-doublev ->)
263
264;; 2.13
265(define-foreign-tparm glRasterPos2 (s i f d) T T ->)
266(define-foreign-tparm glRasterPos3 (s i f d) T T T ->)
267(define-foreign-tparm glRasterPos4 (s i f d) T T T T ->)
268(define-foreign-tparm glRasterPos2 (sv iv fv dv) T ->)
269(define-foreign-tparm glRasterPos3 (sv iv fv dv) T ->)
270(define-foreign-tparm glRasterPos4 (sv iv fv dv) T ->)
271(define-foreign-tparm glWindowPos2 (s i f d) T T ->)
272(define-foreign-tparm glWindowPos3 (s i f d) T T T ->)
273(define-foreign-tparm glWindowPos2 (sv iv fv dv) T ->)
274(define-foreign-tparm glWindowPos3 (sv iv fv dv) T ->)
275
276;; 2.14.1
277(define-foreign glFrontFace _gl-enum ->)
278
279;; 2.14.2
280(define-foreign-tparm glMaterial (i f) _gl-enum _gl-enum T ->)
281(define-foreign-tparm glMaterial (iv fv) _gl-enum _gl-enum T ->)
282(define-foreign-tparm glLight (i f) _gl-enum _gl-enum T ->)
283(define-foreign-tparm glLight (iv fv) _gl-enum _gl-enum T ->)
284(define-foreign-tparm glLightModel (i f) _gl-enum T ->)
285(define-foreign-tparm glLightModel (iv fv) _gl-enum T ->)
286
287;; 2.14.3
288(define-foreign glColorMaterial _gl-enum _gl-enum ->)
289
290;; 2.14.7
291(define-foreign glShadeModel _gl-enum ->)
292
293;; 3.3
294(define-foreign glPointSize _gl-float ->)
295(define-foreign-tparm glPointParameter (i f) _gl-enum _gl-float ->)
296(define-foreign-tparm glPointParameter (iv fv) _gl-enum _gl-floatv ->)
297
298;; 3.4
299(define-foreign glLineWidth _gl-float ->)
300
301;; 3.4.2
302(define-foreign glLineStipple _gl-int _gl-ushort ->)
303
304;; 3.5.1
305(define-foreign glCullFace _gl-enum ->)
306
307;; 3.5.2
308(define-foreign glPolygonStipple _gl-ubytev ->)
309
310;; 3.5.4
311(define-foreign glPolygonMode _gl-enum _gl-enum ->)
312
313;; 3.5.5
314(define-foreign glPolygonOffset _gl-float _gl-float ->)
315
316;; 3.6.1
317(define-foreign-tparm glPixelStore (i f) _gl-enum T ->)
318
319;; 3.6.3
320(define-foreign-tparm glPixelTransfer (i f) _gl-enum T ->)
321(define-foreign-tparm glPixelMap (uiv usv fv)
322                      _gl-enum [_gl-sizei = (cvector-length l)] [l : T] ->)
323(define-foreign glColorTable
324                _gl-enum _gl-enum _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
325(define-foreign-tparm glColorTableParameter (iv fv) _gl-enum _gl-enum T ->)
326(define-foreign glCopyColorTable
327                _gl-enum _gl-enum _gl-int _gl-int _gl-sizei ->)
328(define-foreign glColorSubTable
329                _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
330(define-foreign glCopyColorSubTable
331                _gl-enum _gl-sizei _gl-int _gl-int _gl-sizei ->)
332(define-foreign glConvolutionFilter2D _gl-enum _gl-enum _gl-sizei _gl-sizei
333                                      _gl-enum _gl-enum _gl-voidv ->)
334(define-foreign-tparm glConvolutionParameter (iv fv) _gl-enum _gl-enum T ->)
335(define-foreign glConvolutionFilter1D
336                _gl-enum _gl-enum _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
337(define-foreign glSeparableFilter2D _gl-enum _gl-enum _gl-sizei _gl-sizei
338                                    _gl-enum _gl-enum _gl-voidv _gl-voidv ->)
339(define-foreign glCopyConvolutionFilter2D
340                _gl-enum _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei ->)
341(define-foreign glCopyConvolutionFilter1D
342                _gl-enum _gl-enum _gl-int _gl-int _gl-sizei ->)
343(define-foreign glHistogram _gl-enum _gl-sizei _gl-enum _gl-boolean ->)
344(define-foreign glMinmax _gl-enum _gl-enum _gl-boolean ->)
345
346;; 3.6.4
347(define-foreign glDrawPixels
348                _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
349(define-foreign glPixelZoom _gl-float _gl-float ->)
350
351;; 3.6.5
352(define-foreign-tparm  glConvolutionParameter (i f) _gl-enum _gl-enum T ->)
353
354;; 3.7
355(define-foreign glBitmap _gl-sizei _gl-sizei _gl-float _gl-float _gl-float
356                         _gl-float _gl-ubytev ->)
357
358;; 3.8.1
359(define-foreign glTexImage3D _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei
360                             _gl-sizei _gl-int _gl-enum _gl-enum _gl-voidv ->)
361(define-foreign glTexImage2D _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei
362                             _gl-int _gl-enum _gl-enum _gl-voidv ->)
363(define-foreign glTexImage1D _gl-enum _gl-int _gl-int _gl-sizei _gl-int
364                             _gl-enum _gl-enum _gl-voidv ->)
365
366;; 3.8.2
367(define-foreign glCopyTexImage2D _gl-enum _gl-int _gl-enum _gl-int _gl-int
368                                 _gl-sizei _gl-sizei _gl-int ->)
369(define-foreign glCopyTexImage1D _gl-enum _gl-int _gl-enum _gl-int _gl-int
370                                 _gl-sizei _gl-int ->)
371(define-foreign glTexSubImage3D
372                _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei
373                _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
374(define-foreign glTexSubImage2D
375                _gl-enum _gl-int _gl-int _gl-int _gl-sizei _gl-sizei
376                _gl-enum _gl-enum _gl-voidv ->)
377(define-foreign glTexSubImage1D _gl-enum _gl-int _gl-int _gl-sizei
378                                _gl-enum _gl-enum _gl-voidv ->)
379(define-foreign glCopyTexSubImage3D
380                _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-int _gl-int
381                _gl-sizei _gl-sizei ->)
382(define-foreign glCopyTexSubImage2D
383                _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-int
384                _gl-sizei _gl-sizei ->)
385(define-foreign glCopyTexSubImage1D
386                _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei ->)
387
388;; 3.8.3
389(define-foreign glCompressedTexImage1D
390                _gl-enum _gl-int _gl-enum _gl-sizei _gl-int _gl-sizei
391                _gl-voidv ->)
392(define-foreign glCompressedTexImage2D
393                _gl-enum _gl-int _gl-enum _gl-sizei _gl-sizei _gl-int
394                _gl-sizei _gl-voidv ->)
395(define-foreign glCompressedTexImage3D
396                _gl-enum _gl-int _gl-enum _gl-sizei _gl-sizei _gl-sizei
397                _gl-int _gl-sizei _gl-voidv ->)
398(define-foreign glCompressedTexSubImage1D
399                _gl-enum _gl-int _gl-int _gl-sizei _gl-enum _gl-sizei
400                _gl-voidv ->)
401(define-foreign glCompressedTexSubImage2D
402                _gl-enum _gl-int _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum
403                _gl-sizei _gl-voidv ->)
404(define-foreign glCompressedTexSubImage3D
405                _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei
406                _gl-sizei _gl-enum _gl-sizei _gl-voidv ->)
407
408;; 3.8.4
409(define-foreign-tparm glTexParameter (i f) _gl-enum _gl-enum T ->)
410(define-foreign-tparm glTexParameter (iv fv) _gl-enum _gl-enum T ->)
411
412;; 3.8.12
413(define-foreign glBindTexture _gl-enum _gl-uint ->)
414(define-foreign glDeleteTextures
415                [_gl-sizei = (cvector-length v)] [v : _gl-uintv] ->)
416(define-foreign glGenTextures
417                [n : _gl-sizei] [r : (_cvector o _gl-uint n)] -> _void -> r)
418(define-foreign glAreTexturesResident
419                [n : _gl-sizei = (cvector-length v)] [v : _gl-uintv]
420                [r : (_cvector o _gl-boolean n)] ->
421                [r2 : _gl-boolean] -> (values r2 r))
422
423;; 3.8.13
424(define-foreign-tparm glTexEnv (i f) _gl-enum _gl-enum T ->)
425(define-foreign-tparm glTexEnv (iv fv) _gl-enum _gl-enum T ->)
426
427;; 3.10
428(define-foreign-tparm glFog (i f) _gl-enum T ->)
429(define-foreign-tparm glFog (iv fv) _gl-enum T ->)
430
431;; 4.1.2
432(define-foreign glScissor _gl-int _gl-int _gl-sizei _gl-sizei ->)
433
434;; 4.1.3
435(define-foreign glSampleCoverage _gl-clampf _gl-boolean ->)
436
437;; 4.1.4
438(define-foreign glAlphaFunc _gl-enum _gl-clampf ->)
439
440;; 4.1.5
441(define-foreign glStencilFunc _gl-enum _gl-int _gl-uint ->)
442(define-foreign glStencilOp _gl-enum _gl-enum _gl-enum ->)
443
444;; 4.1.6
445(define-foreign glDepthFunc _gl-enum ->)
446
447;; 4.1.7
448(define-foreign glBeginQuery _gl-enum _gl-uint ->)
449(define-foreign glEndQuery _gl-enum ->)
450(define-foreign glGenQueries
451                [n : _gl-sizei] [r : (_cvector o _gl-uint n)] -> _void -> r)
452(define-foreign glDeleteQueries [_gl-sizei = (cvector-length v)]
453                                [v : _gl-uintv] ->)
454
455;; 4.1.8
456(define-foreign glBlendEquation _gl-enum ->)
457(define-foreign glBlendFuncSeparate _gl-enum _gl-enum _gl-enum _gl-enum ->)
458(define-foreign glBlendFunc _gl-enum _gl-enum ->)
459(define-foreign glBlendColor _gl-clampf _gl-clampf _gl-clampf _gl-clampf ->)
460
461;; 4.1.10
462(define-foreign glLogicOp _gl-enum ->)
463
464;; 4.2.1
465(define-foreign glDrawBuffer _gl-enum ->)
466
467;; 4.2.2
468(define-foreign glIndexMask _gl-uint ->)
469(define-foreign glColorMask
470                _gl-boolean _gl-boolean _gl-boolean _gl-boolean ->)
471(define-foreign glDepthMask _gl-boolean ->)
472(define-foreign glStencilMask _gl-uint ->)
473
474;; 4.2.3
475(define-foreign glClear _gl-bitfield ->)
476(define-foreign glClearColor _gl-clampf _gl-clampf _gl-clampf _gl-clampf ->)
477(define-foreign glClearIndex _gl-float ->)
478(define-foreign glClearDepth _gl-clampd ->)
479(define-foreign glClearStencil _gl-int ->)
480(define-foreign glClearAccum _gl-float _gl-float _gl-float _gl-float ->)
481
482;; 4.2.4
483(define-foreign glAccum _gl-enum _gl-float ->)
484
485;; 4.3.2
486(define-foreign glReadPixels _gl-int _gl-int _gl-sizei _gl-sizei
487                             _gl-enum _gl-enum _gl-voidv ->)
488(define-foreign glReadBuffer _gl-enum ->)
489
490;; 4.3.3
491(define-foreign glCopyPixels _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum ->)
492
493;; 5.1
494;; Map1 and 2 appear to have a bug in the spec where the last argument is not
495;; declared as a pointer
496(define-foreign-tparm glMap1 (f) _gl-enum T T _gl-int _gl-int _gl-floatv ->)
497(define-foreign-tparm glMap1 (d) _gl-enum T T _gl-int _gl-int _gl-doublev ->)
498(define-foreign-tparm glMap2 (f)
499                      _gl-enum T T _gl-int _gl-int T T _gl-int _gl-int
500                      _gl-floatv ->)
501(define-foreign-tparm glMap2 (d)
502                      _gl-enum T T _gl-int _gl-int T T _gl-int _gl-int
503                      _gl-doublev ->)
504(define-foreign-tparm glEvalCoord1 (f d) T ->)
505(define-foreign-tparm glEvalCoord2 (f d) T T ->)
506(define-foreign-tparm glEvalCoord1 (fv dv) T ->)
507(define-foreign-tparm glEvalCoord2 (fv dv) T ->)
508(define-foreign-tparm glMapGrid1 (f d) _gl-int T T ->)
509(define-foreign-tparm glMapGrid2 (f d) _gl-int T T _gl-int T T ->)
510(define-foreign glEvalMesh1 _gl-enum _gl-int _gl-int ->)
511(define-foreign glEvalMesh2 _gl-enum _gl-int _gl-int _gl-int _gl-int ->)
512(define-foreign glEvalPoint1 _gl-int ->)
513(define-foreign glEvalPoint2 _gl-int _gl-int ->)
514
515;; 5.2
516(define-foreign glInitNames ->)
517(define-foreign glPopName ->)
518(define-foreign glPushName _gl-uint ->)
519(define-foreign glLoadName _gl-uint ->)
520(define-foreign glRenderMode _gl-enum -> _gl-int)
521(define-struct select-buffer-object (ptr len))
522(provide select-buffer->gl-uint-vector)
523(define (select-buffer->gl-uint-vector sbo)
524  (unless (select-buffer-object? sbo)
525    (raise-type-error 'select-buffer->gl-uint-vector "select-buffer-object" sbo))
526  (let* ([l (select-buffer-object-len sbo)]
527         [p (select-buffer-object-ptr sbo)]
528         [v (make-gl-uint-vector l)])
529    (let loop ([i 0])
530      (when (< i l)
531        (gl-vector-set! v i (ptr-ref p _gl-uint i))
532        (loop (add1 i))))
533    v))
534
535(define-foreign glSelectBuffer
536  [n : _gl-sizei] [mem : _pointer = (malloc n _gl-uint 'raw)] ->
537  _void ->
538  (let ([o (make-select-buffer-object mem n)])
539    (register-finalizer o (lambda (sbo) (free (select-buffer-object-ptr sbo))))
540    o))
541
542;; 5.3
543(define-struct feedback-buffer-object (ptr len))
544(provide feedback-buffer->gl-float-vector)
545(define (feedback-buffer->gl-float-vector fbo)
546  (unless (feedback-buffer-object? fbo)
547    (raise-type-error 'feedback-buffer->gl-uint-vector
548                      "feedback-buffer-object" fbo))
549  (let* ([l (feedback-buffer-object-len fbo)]
550         [p (feedback-buffer-object-ptr fbo)]
551         [v (make-gl-float-vector l)])
552    (let loop ([i 0])
553      (when (< i l)
554        (gl-vector-set! v i (ptr-ref p _gl-float i))
555        (loop (add1 i))))
556    v))
557(define-foreign glFeedbackBuffer
558  [n : _gl-sizei] _gl-enum [mem : _pointer = (malloc _gl-float n 'raw)] ->
559  _void ->
560  (let ([o (make-feedback-buffer-object mem n)])
561    (register-finalizer o (lambda (fbo) (free (feedback-buffer-object-ptr fbo))))
562    o))
563(define-foreign glPassThrough _gl-float ->)
564
565;; 5.4
566(define-foreign glNewList _gl-uint _gl-enum ->)
567(define-foreign glEndList ->)
568(define-foreign glCallList _gl-uint ->)
569(define-foreign glCallLists _gl-sizei _gl-enum _gl-voidv ->)
570(define-foreign glListBase _gl-uint ->)
571(define-foreign glGenLists _gl-sizei -> _gl-uint)
572(define-foreign glIsList _gl-uint -> _gl-boolean)
573(define-foreign glDeleteLists _gl-uint _gl-sizei ->)
574
575;; 5.5
576(define-foreign glFlush ->)
577(define-foreign glFinish ->)
578
579;; 5.6
580(define-foreign glHint _gl-enum _gl-enum ->)
581
582;; 6.1.1
583(define-foreign glGetBooleanv
584  _gl-enum [n : _?] [r : (_cvector o _gl-boolean n)] ->
585  _void -> r)
586(define-foreign glGetIntegerv
587  _gl-enum [n : _?] [r : (_cvector o _gl-int n)] -> _void -> r)
588(define-foreign glGetFloatv
589  _gl-enum [n : _?] [r : (_cvector o _gl-float n)] ->
590  _void -> r)
591(define-foreign glGetDoublev
592  _gl-enum [n : _?] [r : (_cvector o _gl-double n)] ->
593  _void -> r)
594(define-foreign glIsEnabled _gl-enum -> _gl-boolean)
595
596;; 6.1.3
597(define-foreign glGetClipPlane
598  _gl-enum [r : (_cvector o _gl-double 4)] -> _void -> r)
599(define-foreign-tparm glGetLight (iv fv)
600  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
601(define-foreign-tparm glGetMaterial (iv fv)
602  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
603(define-foreign-tparm glGetTexEnv (iv fv)
604  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
605(define-foreign-tparm glGetTexGen (iv fv dv)
606  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
607(define-foreign-tparm glGetTexParameter (iv fv)
608  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
609(define-foreign-tparm glGetTexLevelParameter (iv fv)
610                      _gl-enum _gl-int _gl-enum [n : _?] [r : (T n)] ->
611                      _void -> r)
612(define-foreign-tparm glGetPixelMap (uiv usv fv)
613                      _gl-enum [n : _?] [r : (T n)] -> _void -> r)
614(define-foreign-tparm glGetMap (iv fv dv)
615                      _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
616(define-foreign-tparm glGetBufferParameter (iv)
617                      _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
618
619
620;; 6.1.4
621(define-foreign glGetTexImage _gl-enum _gl-int _gl-enum _gl-enum _gl-voidv ->)
622(define-foreign glGetCompressedTexImage _gl-enum _gl-int _gl-voidv ->)
623(define-foreign glIsTexture _gl-uint -> _gl-boolean)
624
625;; 6.1.5
626(define-foreign glGetPolygonStipple _gl-voidv ->)
627
628;; 6.1.7
629(define-foreign glGetColorTable _gl-enum _gl-enum _gl-enum _gl-voidv ->)
630
631;; 6.1.8
632(define-foreign glGetConvolutionFilter
633  _gl-enum _gl-enum _gl-enum _gl-voidv ->)
634(define-foreign glGetSeparableFilter
635  _gl-enum _gl-enum _gl-enum _gl-voidv _gl-voidv _gl-voidv ->)
636(define-foreign-tparm glGetConvolutionParameter (iv fv)
637  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
638
639;; 6.1.9
640(define-foreign glGetHistogram
641  _gl-enum _gl-boolean _gl-enum _gl-enum _gl-voidv ->)
642(define-foreign glResetHistogram _gl-enum ->)
643(define-foreign-tparm glGetHistogramParameter (iv fv)
644  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
645
646;; 6.1.10
647(define-foreign glGetMinmax
648  _gl-enum _gl-boolean _gl-enum _gl-enum _gl-voidv ->)
649(define-foreign glResetMinmax _gl-enum ->)
650(define-foreign-tparm glGetMinmaxParameter (iv fv)
651  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
652
653;; 6.1.11
654#|
655(define-foreign glGetPointerv _gl-enum _gl-voidvv ->)
656|#
657(define-foreign glGetString _gl-enum -> _string)
658
659;; 6.1.12
660(define-foreign glIsQuery _gl-uint -> _gl-boolean)
661(define-foreign-tparm glGetQuery (iv)
662  _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r)
663(define-foreign-tparm glGetQueryObject (iv uiv)
664  _gl-uint _gl-enum [n : _?] [r : (T n)] -> _void -> r)
665
666;; 6.1.13
667(define-foreign glIsBuffer _gl-uint -> _gl-boolean)
668#|
669(define-foreign glGetBufferSubData
670  _gl-enum _gl-intptr _gl-sizeiptr _gl-voidv ->)
671(define-foreign glGetBufferPointerv _gl-enum _gl-enum _gl-voidvv ->)
672|#
673
674;; 6.1.14
675(define-foreign glPushAttrib _gl-bitfield ->)
676(define-foreign glPushClientAttrib _gl-bitfield ->)
677(define-foreign glPopAttrib ->)
678(define-foreign glPopClientAttrib ->)
679
680(define-syntax define-foreignu
681  (syntax-rules ()
682    [(_ args ...) (define-foreign-lib glu-lib args ...)]))
683
684;; 2
685(define-foreignu gluGetString _gl-enum -> _string)
686(define-foreignu gluCheckExtension _string _string -> _gl-boolean)
687
688;; 3.1
689(define-foreignu gluScaleImage _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-voidv
690                               _gl-sizei _gl-sizei _gl-enum _gl-voidv ->)
691
692;; 3.2
693(define-foreignu gluBuild1DMipmaps
694  _gl-enum _gl-int _gl-sizei _gl-enum _gl-enum _gl-voidv ->)
695(define-foreignu gluBuild2DMipmaps
696  _gl-enum _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum
697  _gl-voidv ->)
698(define-foreignu gluBuild3DMipmaps
699  _gl-enum _gl-int _gl-sizei _gl-sizei _gl-sizei
700  _gl-enum _gl-enum _gl-voidv ->)
701(define-foreignu gluBuild1DMipmapLevels
702  _gl-enum _gl-int _gl-sizei _gl-enum _gl-enum
703  _gl-int _gl-int _gl-int _gl-voidv ->)
704(define-foreignu gluBuild2DMipmapLevels
705  _gl-enum _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum
706  _gl-int _gl-int _gl-int _gl-voidv ->)
707(define-foreignu gluBuild3DMipmapLevels
708  _gl-enum _gl-int _gl-sizei _gl-sizei _gl-sizei
709  _gl-enum _gl-enum _gl-int _gl-int _gl-int _gl-voidv ->)
710
711;; 4.1
712(define-foreignu gluOrtho2D _gl-double _gl-double _gl-double _gl-double ->)
713(define-foreignu gluPerspective
714  _gl-double _gl-double _gl-double _gl-double ->)
715(define-foreignu gluLookAt _gl-double _gl-double _gl-double
716                           _gl-double _gl-double _gl-double
717                           _gl-double _gl-double _gl-double ->)
718(define-foreignu gluPickMatrix
719  _gl-double _gl-double _gl-double _gl-double _gl-intv ->)
720
721;; 4.2
722(define-foreignu gluProject _gl-double _gl-double _gl-double
723                            _gl-doublev _gl-doublev _gl-intv
724                            [r1 : (_ptr o _gl-double)]
725                            [r2 : (_ptr o _gl-double)]
726                            [r3 : (_ptr o _gl-double)] ->
727                            _void -> (gl-double-vector r1 r2 r3))
728(define-foreignu gluUnProject _gl-double _gl-double _gl-double
729                              _gl-doublev _gl-doublev _gl-intv
730                              [r1 : (_ptr o _gl-double)]
731                              [r2 : (_ptr o _gl-double)]
732                              [r3 : (_ptr o _gl-double)] ->
733                              _void -> (gl-double-vector r1 r2 r3))
734(define-foreignu gluUnProject4 _gl-double _gl-double _gl-double _gl-double
735                               _gl-doublev _gl-doublev _gl-intv
736                               _gl-clampd _gl-clampd
737                               [r1 : (_ptr o _gl-double)]
738                               [r2 : (_ptr o _gl-double)]
739                               [r3 : (_ptr o _gl-double)]
740                               [r4 : (_ptr o _gl-double)] ->
741                               _void -> (gl-double-vector r1 r2 r3 r4))
742
743;; 5.1
744#|
745(define-foreignu gluNewTess -> _glu-tessalator*)
746(define-foreignu gluDeleteTess _glu-tessalator* ->)
747|#
748
749;; 5.2
750#|
751(define-foreignu gluTessBeginPolygon _glu-tessalator* _gl-voidv ->)
752(define-foreignu gluTessBeginContour _glu-tessalator* ->)
753(define-foreignu gluTessVertex _glu-tessalator* _gl-doublev _gl-voidv ->)
754(define-foreignu gluTessEndContour _glu-tessalator* ->)
755(define-foreignu gluTessEndPolygon _glu-tessalator* ->)
756|#
757
758;; 5.3
759#|
760(define-foreignu gluTessCallback _glu-tessalator _gl-enum ??? ->)
761|#
762
763;; 5.4
764#|
765(define-foreignu gluTessProperty _glu-tessalator* _gl-enum _gl-double ->)
766(define-foreignu gluGetTessProperty _glu-tessalator* _gl-enum _gl-doublev ->)
767(define-foreignu gluTessNormal _glu-tessalator* _gl-double _gl-double _gl-double ->)
768|#
769
770;; 5.7
771#|
772(define-foreignu gluBeginPolygon _glu-tessalator* ->)
773(define-foreignu gluNextContour _glu-tessalator* _gl-enum ->)
774(define-foreignu gluEndPolygon _glu-tessalator* ->)
775|#
776
777  ;; 6.1
778(define _glu-quadric
779  (_cpointer 'quadric _pointer #f
780             (lambda (q*) (register-finalizer q* gluDeleteQuadric) q*)))
781
782(define-foreignu gluNewQuadric -> _glu-quadric)
783
784;; Don't use define-foreign, because this shouldn't be provided
785(define gluDeleteQuadric
786  (with-handlers ([exn:fail:filesystem?
787                   (lambda (ex)
788                     (lambda x
789                       (error 'gluDeleteQuadric
790                              "unavailable on this system")))])
791    (get-ffi-obj 'gluDeleteQuadric glu-lib (_fun* _glu-quadric -> _void))))
792
793;; 6.2
794;;(define-foreignu gluQuadricCallback
795;;                 _glu-quadric [_gl-enum = GLU_ERROR] (_fun* _gl-enum -> _void) ->)
796
797;; 6.3
798(define-foreignu gluQuadricNormals _glu-quadric _gl-enum ->)
799(define-foreignu gluQuadricTexture _glu-quadric _gl-boolean ->)
800(define-foreignu gluQuadricOrientation _glu-quadric _gl-enum ->)
801(define-foreignu gluQuadricDrawStyle _glu-quadric _gl-enum ->)
802
803;; 6.4
804(define-foreignu gluSphere _glu-quadric _gl-double _gl-int _gl-int ->)
805(define-foreignu gluCylinder
806  _glu-quadric _gl-double _gl-double _gl-double _gl-int _gl-int ->)
807(define-foreignu gluDisk _glu-quadric _gl-double _gl-double _gl-int _gl-int ->)
808(define-foreignu gluPartialDisk
809  _glu-quadric _gl-double _gl-double _gl-int _gl-int _gl-double _gl-double ->)
810
811;; 7.1
812(define _glu-nurbs
813  (_cpointer 'nurbs _pointer #f
814             (lambda (q*) (register-finalizer q* gluDeleteNurbsRenderer) q*)))
815
816(define-foreignu gluNewNurbsRenderer -> _glu-nurbs)
817(define-foreignu gluDeleteNurbsRenderer _glu-nurbs ->)
818
819
820;; 7.2
821#|
822(define-foreignu gluNurbsCallback _glu-nurbs* _gl-enum ??? ->)
823(define-foreignu gluNurbsCallbackData _glu-nurbs* _gl-voidv ->)
824|#
825
826;; 7.3
827(define-foreignu gluBeginCurve _glu-nurbs ->)
828(define-foreignu gluNurbsCurve
829  _glu-nurbs _gl-int _gl-floatv _gl-int _gl-floatv _gl-int _gl-enum ->)
830(define-foreignu gluEndCurve _glu-nurbs ->)
831
832;; 7.4
833
834(define-foreignu gluBeginSurface _glu-nurbs ->)
835(define-foreignu gluNurbsSurface
836  _glu-nurbs _gl-int _gl-floatv _gl-int _gl-floatv _gl-int
837  _gl-int _gl-floatv _gl-int _gl-int _gl-enum ->)
838(define-foreignu gluEndSurface _glu-nurbs ->)
839
840
841;; 7.5
842#|
843(define-foreignu gluBeginTrim _glu-nurbs* ->)
844(define-foreignu gluPwlCurve _glu-nurbs* _gl-int _gl-floatv _gl-int _gl-enum ->)
845(define-foreignu gluEndTrim _glu-nurbs* ->)
846|#
847
848;; 7.6
849(define-foreignu gluNurbsProperty _glu-nurbs _gl-enum _gl-float ->)
850#|
851(define-foreignu gluLoadSamplingMatrix _glu-nurbs* _gl-floatv _gl-floatv _gl-intv ->)
852(define-foreignu gluGetNurbsProperty _glu-nurbs* _gl-enum _gl-floatv ->)
853|#
854
855;; 8
856(define-foreignu gluErrorString _gl-enum -> _string)
857
858
859(define-syntax define-enum
860  (syntax-rules ()
861    [(_ d v)   (begin (provide d) (define d v))]
862    [(_ _ d v) (define-enum d v)]))
863
864;; Enumeration constants for version 1.0 and 1.1
865;; These values are all taken from MESA's gl.h.
866;; Although the standard doesn't define these, they seem to be used on all
867;; platforms.
868(define-enum GL_FALSE #x0)
869(define-enum GL_TRUE #x1)
870(define-enum GL_BYTE #x1400)
871(define-enum GL_UNSIGNED_BYTE #x1401)
872(define-enum GL_SHORT #x1402)
873(define-enum GL_UNSIGNED_SHORT #x1403)
874(define-enum GL_INT #x1404)
875(define-enum GL_UNSIGNED_INT #x1405)
876(define-enum GL_FLOAT #x1406)
877(define-enum GL_DOUBLE #x140A)
878(define-enum GL_2_BYTES #x1407)
879(define-enum GL_3_BYTES #x1408)
880(define-enum GL_4_BYTES #x1409)
881(define-enum GL_POINTS #x0000)
882(define-enum GL_LINES #x0001)
883(define-enum GL_LINE_LOOP #x0002)
884(define-enum GL_LINE_STRIP #x0003)
885(define-enum GL_TRIANGLES #x0004)
886(define-enum GL_TRIANGLE_STRIP #x0005)
887(define-enum GL_TRIANGLE_FAN #x0006)
888(define-enum GL_QUADS #x0007)
889(define-enum GL_QUAD_STRIP #x0008)
890(define-enum GL_POLYGON #x0009)
891(define-enum GL_VERTEX_ARRAY #x8074)
892(define-enum GL_NORMAL_ARRAY #x8075)
893(define-enum GL_COLOR_ARRAY #x8076)
894(define-enum GL_INDEX_ARRAY #x8077)
895(define-enum GL_TEXTURE_COORD_ARRAY #x8078)
896(define-enum GL_EDGE_FLAG_ARRAY #x8079)
897(define-enum GL_VERTEX_ARRAY_SIZE #x807A)
898(define-enum GL_VERTEX_ARRAY_TYPE #x807B)
899(define-enum GL_VERTEX_ARRAY_STRIDE #x807C)
900(define-enum GL_NORMAL_ARRAY_TYPE #x807E)
901(define-enum GL_NORMAL_ARRAY_STRIDE #x807F)
902(define-enum GL_COLOR_ARRAY_SIZE #x8081)
903(define-enum GL_COLOR_ARRAY_TYPE #x8082)
904(define-enum GL_COLOR_ARRAY_STRIDE #x8083)
905(define-enum GL_INDEX_ARRAY_TYPE #x8085)
906(define-enum GL_INDEX_ARRAY_STRIDE #x8086)
907(define-enum GL_TEXTURE_COORD_ARRAY_SIZE #x8088)
908(define-enum GL_TEXTURE_COORD_ARRAY_TYPE #x8089)
909(define-enum GL_TEXTURE_COORD_ARRAY_STRIDE #x808A)
910(define-enum GL_EDGE_FLAG_ARRAY_STRIDE #x808C)
911(define-enum GL_VERTEX_ARRAY_POINTER #x808E)
912(define-enum GL_NORMAL_ARRAY_POINTER #x808F)
913(define-enum GL_COLOR_ARRAY_POINTER #x8090)
914(define-enum GL_INDEX_ARRAY_POINTER #x8091)
915(define-enum GL_TEXTURE_COORD_ARRAY_POINTER #x8092)
916(define-enum GL_EDGE_FLAG_ARRAY_POINTER #x8093)
917(define-enum GL_V2F #x2A20)
918(define-enum GL_V3F #x2A21)
919(define-enum GL_C4UB_V2F #x2A22)
920(define-enum GL_C4UB_V3F #x2A23)
921(define-enum GL_C3F_V3F #x2A24)
922(define-enum GL_N3F_V3F #x2A25)
923(define-enum GL_C4F_N3F_V3F #x2A26)
924(define-enum GL_T2F_V3F #x2A27)
925(define-enum GL_T4F_V4F #x2A28)
926(define-enum GL_T2F_C4UB_V3F #x2A29)
927(define-enum GL_T2F_C3F_V3F #x2A2A)
928(define-enum GL_T2F_N3F_V3F #x2A2B)
929(define-enum GL_T2F_C4F_N3F_V3F #x2A2C)
930(define-enum GL_T4F_C4F_N3F_V4F #x2A2D)
931(define-enum GL_MATRIX_MODE #x0BA0)
932(define-enum GL_MODELVIEW #x1700)
933(define-enum GL_PROJECTION #x1701)
934(define-enum GL_TEXTURE #x1702)
935(define-enum GL_POINT_SMOOTH #x0B10)
936(define-enum GL_POINT_SIZE #x0B11)
937(define-enum GL_POINT_SIZE_GRANULARITY #x0B13)
938(define-enum GL_POINT_SIZE_RANGE #x0B12)
939(define-enum GL_LINE_SMOOTH #x0B20)
940(define-enum GL_LINE_STIPPLE #x0B24)
941(define-enum GL_LINE_STIPPLE_PATTERN #x0B25)
942(define-enum GL_LINE_STIPPLE_REPEAT #x0B26)
943(define-enum GL_LINE_WIDTH #x0B21)
944(define-enum GL_LINE_WIDTH_GRANULARITY #x0B23)
945(define-enum GL_LINE_WIDTH_RANGE #x0B22)
946(define-enum GL_POINT #x1B00)
947(define-enum GL_LINE #x1B01)
948(define-enum GL_FILL #x1B02)
949(define-enum GL_CW #x0900)
950(define-enum GL_CCW #x0901)
951(define-enum GL_FRONT #x0404)
952(define-enum GL_BACK #x0405)
953(define-enum GL_POLYGON_MODE #x0B40)
954(define-enum GL_POLYGON_SMOOTH #x0B41)
955(define-enum GL_POLYGON_STIPPLE #x0B42)
956(define-enum GL_EDGE_FLAG #x0B43)
957(define-enum GL_CULL_FACE #x0B44)
958(define-enum GL_CULL_FACE_MODE #x0B45)
959(define-enum GL_FRONT_FACE #x0B46)
960(define-enum GL_POLYGON_OFFSET_FACTOR #x8038)
961(define-enum GL_POLYGON_OFFSET_UNITS #x2A00)
962(define-enum GL_POLYGON_OFFSET_POINT #x2A01)
963(define-enum GL_POLYGON_OFFSET_LINE #x2A02)
964(define-enum GL_POLYGON_OFFSET_FILL #x8037)
965(define-enum GL_COMPILE #x1300)
966(define-enum GL_COMPILE_AND_EXECUTE #x1301)
967(define-enum GL_LIST_BASE #x0B32)
968(define-enum GL_LIST_INDEX #x0B33)
969(define-enum GL_LIST_MODE #x0B30)
970(define-enum GL_NEVER #x0200)
971(define-enum GL_LESS #x0201)
972(define-enum GL_EQUAL #x0202)
973(define-enum GL_LEQUAL #x0203)
974(define-enum GL_GREATER #x0204)
975(define-enum GL_NOTEQUAL #x0205)
976(define-enum GL_GEQUAL #x0206)
977(define-enum GL_ALWAYS #x0207)
978(define-enum GL_DEPTH_TEST #x0B71)
979(define-enum GL_DEPTH_BITS #x0D56)
980(define-enum GL_DEPTH_CLEAR_VALUE #x0B73)
981(define-enum GL_DEPTH_FUNC #x0B74)
982(define-enum GL_DEPTH_RANGE #x0B70)
983(define-enum GL_DEPTH_WRITEMASK #x0B72)
984(define-enum GL_DEPTH_COMPONENT #x1902)
985(define-enum GL_LIGHTING #x0B50)
986(define-enum GL_LIGHT0 #x4000)
987(define-enum GL_LIGHT1 #x4001)
988(define-enum GL_LIGHT2 #x4002)
989(define-enum GL_LIGHT3 #x4003)
990(define-enum GL_LIGHT4 #x4004)
991(define-enum GL_LIGHT5 #x4005)
992(define-enum GL_LIGHT6 #x4006)
993(define-enum GL_LIGHT7 #x4007)
994(define-enum GL_SPOT_EXPONENT #x1205)
995(define-enum GL_SPOT_CUTOFF #x1206)
996(define-enum GL_CONSTANT_ATTENUATION #x1207)
997(define-enum GL_LINEAR_ATTENUATION #x1208)
998(define-enum GL_QUADRATIC_ATTENUATION #x1209)
999(define-enum GL_AMBIENT #x1200)
1000(define-enum GL_DIFFUSE #x1201)
1001(define-enum GL_SPECULAR #x1202)
1002(define-enum GL_SHININESS #x1601)
1003(define-enum GL_EMISSION #x1600)
1004(define-enum GL_POSITION #x1203)
1005(define-enum GL_SPOT_DIRECTION #x1204)
1006(define-enum GL_AMBIENT_AND_DIFFUSE #x1602)
1007(define-enum GL_COLOR_INDEXES #x1603)
1008(define-enum GL_LIGHT_MODEL_TWO_SIDE #x0B52)
1009(define-enum GL_LIGHT_MODEL_LOCAL_VIEWER #x0B51)
1010(define-enum GL_LIGHT_MODEL_AMBIENT #x0B53)
1011(define-enum GL_FRONT_AND_BACK #x0408)
1012(define-enum GL_SHADE_MODEL #x0B54)
1013(define-enum GL_FLAT #x1D00)
1014(define-enum GL_SMOOTH #x1D01)
1015(define-enum GL_COLOR_MATERIAL #x0B57)
1016(define-enum GL_COLOR_MATERIAL_FACE #x0B55)
1017(define-enum GL_COLOR_MATERIAL_PARAMETER #x0B56)
1018(define-enum GL_NORMALIZE #x0BA1)
1019(define-enum GL_CLIP_PLANE0 #x3000)
1020(define-enum GL_CLIP_PLANE1 #x3001)
1021(define-enum GL_CLIP_PLANE2 #x3002)
1022(define-enum GL_CLIP_PLANE3 #x3003)
1023(define-enum GL_CLIP_PLANE4 #x3004)
1024(define-enum GL_CLIP_PLANE5 #x3005)
1025(define-enum GL_ACCUM_RED_BITS #x0D58)
1026(define-enum GL_ACCUM_GREEN_BITS #x0D59)
1027(define-enum GL_ACCUM_BLUE_BITS #x0D5A)
1028(define-enum GL_ACCUM_ALPHA_BITS #x0D5B)
1029(define-enum GL_ACCUM_CLEAR_VALUE #x0B80)
1030(define-enum GL_ACCUM #x0100)
1031(define-enum GL_ADD #x0104)
1032(define-enum GL_LOAD #x0101)
1033(define-enum GL_MULT #x0103)
1034(define-enum GL_RETURN #x0102)
1035(define-enum GL_ALPHA_TEST #x0BC0)
1036(define-enum GL_ALPHA_TEST_REF #x0BC2)
1037(define-enum GL_ALPHA_TEST_FUNC #x0BC1)
1038(define-enum GL_BLEND #x0BE2)
1039(define-enum GL_BLEND_SRC #x0BE1)
1040(define-enum GL_BLEND_DST #x0BE0)
1041(define-enum GL_ZERO #x0)
1042(define-enum GL_ONE #x1)
1043(define-enum GL_SRC_COLOR #x0300)
1044(define-enum GL_ONE_MINUS_SRC_COLOR #x0301)
1045(define-enum GL_SRC_ALPHA #x0302)
1046(define-enum GL_ONE_MINUS_SRC_ALPHA #x0303)
1047(define-enum GL_DST_ALPHA #x0304)
1048(define-enum GL_ONE_MINUS_DST_ALPHA #x0305)
1049(define-enum GL_DST_COLOR #x0306)
1050(define-enum GL_ONE_MINUS_DST_COLOR #x0307)
1051(define-enum GL_SRC_ALPHA_SATURATE #x0308)
1052(define-enum GL_FEEDBACK #x1C01)
1053(define-enum GL_RENDER #x1C00)
1054(define-enum GL_SELECT #x1C02)
1055(define-enum GL_2D #x0600)
1056(define-enum GL_3D #x0601)
1057(define-enum GL_3D_COLOR #x0602)
1058(define-enum GL_3D_COLOR_TEXTURE #x0603)
1059(define-enum GL_4D_COLOR_TEXTURE #x0604)
1060(define-enum GL_POINT_TOKEN #x0701)
1061(define-enum GL_LINE_TOKEN #x0702)
1062(define-enum GL_LINE_RESET_TOKEN #x0707)
1063(define-enum GL_POLYGON_TOKEN #x0703)
1064(define-enum GL_BITMAP_TOKEN #x0704)
1065(define-enum GL_DRAW_PIXEL_TOKEN #x0705)
1066(define-enum GL_COPY_PIXEL_TOKEN #x0706)
1067(define-enum GL_PASS_THROUGH_TOKEN #x0700)
1068(define-enum GL_FEEDBACK_BUFFER_POINTER #x0DF0)
1069(define-enum GL_FEEDBACK_BUFFER_SIZE #x0DF1)
1070(define-enum GL_FEEDBACK_BUFFER_TYPE #x0DF2)
1071(define-enum GL_SELECTION_BUFFER_POINTER #x0DF3)
1072(define-enum GL_SELECTION_BUFFER_SIZE #x0DF4)
1073(define-enum GL_FOG #x0B60)
1074(define-enum GL_FOG_MODE #x0B65)
1075(define-enum GL_FOG_DENSITY #x0B62)
1076(define-enum GL_FOG_COLOR #x0B66)
1077(define-enum GL_FOG_INDEX #x0B61)
1078(define-enum GL_FOG_START #x0B63)
1079(define-enum GL_FOG_END #x0B64)
1080(define-enum GL_LINEAR #x2601)
1081(define-enum GL_EXP #x0800)
1082(define-enum GL_EXP2 #x0801)
1083(define-enum GL_LOGIC_OP #x0BF1)
1084(define-enum GL_INDEX_LOGIC_OP #x0BF1)
1085(define-enum GL_COLOR_LOGIC_OP #x0BF2)
1086(define-enum GL_LOGIC_OP_MODE #x0BF0)
1087(define-enum GL_CLEAR #x1500)
1088(define-enum GL_SET #x150F)
1089(define-enum GL_COPY #x1503)
1090(define-enum GL_COPY_INVERTED #x150C)
1091(define-enum GL_NOOP #x1505)
1092(define-enum GL_INVERT #x150A)
1093(define-enum GL_AND #x1501)
1094(define-enum GL_NAND #x150E)
1095(define-enum GL_OR #x1507)
1096(define-enum GL_NOR #x1508)
1097(define-enum GL_XOR #x1506)
1098(define-enum GL_EQUIV #x1509)
1099(define-enum GL_AND_REVERSE #x1502)
1100(define-enum GL_AND_INVERTED #x1504)
1101(define-enum GL_OR_REVERSE #x150B)
1102(define-enum GL_OR_INVERTED #x150D)
1103(define-enum GL_STENCIL_TEST #x0B90)
1104(define-enum GL_STENCIL_WRITEMASK #x0B98)
1105(define-enum GL_STENCIL_BITS #x0D57)
1106(define-enum GL_STENCIL_FUNC #x0B92)
1107(define-enum GL_STENCIL_VALUE_MASK #x0B93)
1108(define-enum GL_STENCIL_REF #x0B97)
1109(define-enum GL_STENCIL_FAIL #x0B94)
1110(define-enum GL_STENCIL_PASS_DEPTH_PASS #x0B96)
1111(define-enum GL_STENCIL_PASS_DEPTH_FAIL #x0B95)
1112(define-enum GL_STENCIL_CLEAR_VALUE #x0B91)
1113(define-enum GL_STENCIL_INDEX #x1901)
1114(define-enum GL_KEEP #x1E00)
1115(define-enum GL_REPLACE #x1E01)
1116(define-enum GL_INCR #x1E02)
1117(define-enum GL_DECR #x1E03)
1118(define-enum GL_NONE #x0)
1119(define-enum GL_LEFT #x0406)
1120(define-enum GL_RIGHT #x0407)
1121(define-enum GL_FRONT_LEFT #x0400)
1122(define-enum GL_FRONT_RIGHT #x0401)
1123(define-enum GL_BACK_LEFT #x0402)
1124(define-enum GL_BACK_RIGHT #x0403)
1125(define-enum GL_AUX0 #x0409)
1126(define-enum GL_AUX1 #x040A)
1127(define-enum GL_AUX2 #x040B)
1128(define-enum GL_AUX3 #x040C)
1129(define-enum GL_COLOR_INDEX #x1900)
1130(define-enum GL_RED #x1903)
1131(define-enum GL_GREEN #x1904)
1132(define-enum GL_BLUE #x1905)
1133(define-enum GL_ALPHA #x1906)
1134(define-enum GL_LUMINANCE #x1909)
1135(define-enum GL_LUMINANCE_ALPHA #x190A)
1136(define-enum GL_ALPHA_BITS #x0D55)
1137(define-enum GL_RED_BITS #x0D52)
1138(define-enum GL_GREEN_BITS #x0D53)
1139(define-enum GL_BLUE_BITS #x0D54)
1140(define-enum GL_INDEX_BITS #x0D51)
1141(define-enum GL_SUBPIXEL_BITS #x0D50)
1142(define-enum GL_AUX_BUFFERS #x0C00)
1143(define-enum GL_READ_BUFFER #x0C02)
1144(define-enum GL_DRAW_BUFFER #x0C01)
1145(define-enum GL_DOUBLEBUFFER #x0C32)
1146(define-enum GL_STEREO #x0C33)
1147(define-enum GL_BITMAP #x1A00)
1148(define-enum GL_COLOR #x1800)
1149(define-enum GL_DEPTH #x1801)
1150(define-enum GL_STENCIL #x1802)
1151(define-enum GL_DITHER #x0BD0)
1152(define-enum GL_RGB #x1907)
1153(define-enum GL_RGBA #x1908)
1154(define-enum GL_MAX_LIST_NESTING #x0B31)
1155(define-enum GL_MAX_ATTRIB_STACK_DEPTH #x0D35)
1156(define-enum GL_MAX_MODELVIEW_STACK_DEPTH #x0D36)
1157(define-enum GL_MAX_NAME_STACK_DEPTH #x0D37)
1158(define-enum GL_MAX_PROJECTION_STACK_DEPTH #x0D38)
1159(define-enum GL_MAX_TEXTURE_STACK_DEPTH #x0D39)
1160(define-enum GL_MAX_EVAL_ORDER #x0D30)
1161(define-enum GL_MAX_LIGHTS #x0D31)
1162(define-enum GL_MAX_CLIP_PLANES #x0D32)
1163(define-enum GL_MAX_TEXTURE_SIZE #x0D33)
1164(define-enum GL_MAX_PIXEL_MAP_TABLE #x0D34)
1165(define-enum GL_MAX_VIEWPORT_DIMS #x0D3A)
1166(define-enum GL_MAX_CLIENT_ATTRIB_STACK_DEPTH #x0D3B)
1167(define-enum GL_ATTRIB_STACK_DEPTH #x0BB0)
1168(define-enum GL_CLIENT_ATTRIB_STACK_DEPTH #x0BB1)
1169(define-enum GL_COLOR_CLEAR_VALUE #x0C22)
1170(define-enum GL_COLOR_WRITEMASK #x0C23)
1171(define-enum GL_CURRENT_INDEX #x0B01)
1172(define-enum GL_CURRENT_COLOR #x0B00)
1173(define-enum GL_CURRENT_NORMAL #x0B02)
1174(define-enum GL_CURRENT_RASTER_COLOR #x0B04)
1175(define-enum GL_CURRENT_RASTER_DISTANCE #x0B09)
1176(define-enum GL_CURRENT_RASTER_INDEX #x0B05)
1177(define-enum GL_CURRENT_RASTER_POSITION #x0B07)
1178(define-enum GL_CURRENT_RASTER_TEXTURE_COORDS #x0B06)
1179(define-enum GL_CURRENT_RASTER_POSITION_VALID #x0B08)
1180(define-enum GL_CURRENT_TEXTURE_COORDS #x0B03)
1181(define-enum GL_INDEX_CLEAR_VALUE #x0C20)
1182(define-enum GL_INDEX_MODE #x0C30)
1183(define-enum GL_INDEX_WRITEMASK #x0C21)
1184(define-enum GL_MODELVIEW_MATRIX #x0BA6)
1185(define-enum GL_MODELVIEW_STACK_DEPTH #x0BA3)
1186(define-enum GL_NAME_STACK_DEPTH #x0D70)
1187(define-enum GL_PROJECTION_MATRIX #x0BA7)
1188(define-enum GL_PROJECTION_STACK_DEPTH #x0BA4)
1189(define-enum GL_RENDER_MODE #x0C40)
1190(define-enum GL_RGBA_MODE #x0C31)
1191(define-enum GL_TEXTURE_MATRIX #x0BA8)
1192(define-enum GL_TEXTURE_STACK_DEPTH #x0BA5)
1193(define-enum GL_VIEWPORT #x0BA2)
1194(define-enum GL_AUTO_NORMAL #x0D80)
1195(define-enum GL_MAP1_COLOR_4 #x0D90)
1196(define-enum GL_MAP1_GRID_DOMAIN #x0DD0)
1197(define-enum GL_MAP1_GRID_SEGMENTS #x0DD1)
1198(define-enum GL_MAP1_INDEX #x0D91)
1199(define-enum GL_MAP1_NORMAL #x0D92)
1200(define-enum GL_MAP1_TEXTURE_COORD_1 #x0D93)
1201(define-enum GL_MAP1_TEXTURE_COORD_2 #x0D94)
1202(define-enum GL_MAP1_TEXTURE_COORD_3 #x0D95)
1203(define-enum GL_MAP1_TEXTURE_COORD_4 #x0D96)
1204(define-enum GL_MAP1_VERTEX_3 #x0D97)
1205(define-enum GL_MAP1_VERTEX_4 #x0D98)
1206(define-enum GL_MAP2_COLOR_4 #x0DB0)
1207(define-enum GL_MAP2_GRID_DOMAIN #x0DD2)
1208(define-enum GL_MAP2_GRID_SEGMENTS #x0DD3)
1209(define-enum GL_MAP2_INDEX #x0DB1)
1210(define-enum GL_MAP2_NORMAL #x0DB2)
1211(define-enum GL_MAP2_TEXTURE_COORD_1 #x0DB3)
1212(define-enum GL_MAP2_TEXTURE_COORD_2 #x0DB4)
1213(define-enum GL_MAP2_TEXTURE_COORD_3 #x0DB5)
1214(define-enum GL_MAP2_TEXTURE_COORD_4 #x0DB6)
1215(define-enum GL_MAP2_VERTEX_3 #x0DB7)
1216(define-enum GL_MAP2_VERTEX_4 #x0DB8)
1217(define-enum GL_COEFF #x0A00)
1218(define-enum GL_DOMAIN #x0A02)
1219(define-enum GL_ORDER #x0A01)
1220(define-enum GL_FOG_HINT #x0C54)
1221(define-enum GL_LINE_SMOOTH_HINT #x0C52)
1222(define-enum GL_PERSPECTIVE_CORRECTION_HINT #x0C50)
1223(define-enum GL_POINT_SMOOTH_HINT #x0C51)
1224(define-enum GL_POLYGON_SMOOTH_HINT #x0C53)
1225(define-enum GL_DONT_CARE #x1100)
1226(define-enum GL_FASTEST #x1101)
1227(define-enum GL_NICEST #x1102)
1228(define-enum GL_SCISSOR_TEST #x0C11)
1229(define-enum GL_SCISSOR_BOX #x0C10)
1230(define-enum GL_MAP_COLOR #x0D10)
1231(define-enum GL_MAP_STENCIL #x0D11)
1232(define-enum GL_INDEX_SHIFT #x0D12)
1233(define-enum GL_INDEX_OFFSET #x0D13)
1234(define-enum GL_RED_SCALE #x0D14)
1235(define-enum GL_RED_BIAS #x0D15)
1236(define-enum GL_GREEN_SCALE #x0D18)
1237(define-enum GL_GREEN_BIAS #x0D19)
1238(define-enum GL_BLUE_SCALE #x0D1A)
1239(define-enum GL_BLUE_BIAS #x0D1B)
1240(define-enum GL_ALPHA_SCALE #x0D1C)
1241(define-enum GL_ALPHA_BIAS #x0D1D)
1242(define-enum GL_DEPTH_SCALE #x0D1E)
1243(define-enum GL_DEPTH_BIAS #x0D1F)
1244(define-enum GL_PIXEL_MAP_S_TO_S_SIZE #x0CB1)
1245(define-enum GL_PIXEL_MAP_I_TO_I_SIZE #x0CB0)
1246(define-enum GL_PIXEL_MAP_I_TO_R_SIZE #x0CB2)
1247(define-enum GL_PIXEL_MAP_I_TO_G_SIZE #x0CB3)
1248(define-enum GL_PIXEL_MAP_I_TO_B_SIZE #x0CB4)
1249(define-enum GL_PIXEL_MAP_I_TO_A_SIZE #x0CB5)
1250(define-enum GL_PIXEL_MAP_R_TO_R_SIZE #x0CB6)
1251(define-enum GL_PIXEL_MAP_G_TO_G_SIZE #x0CB7)
1252(define-enum GL_PIXEL_MAP_B_TO_B_SIZE #x0CB8)
1253(define-enum GL_PIXEL_MAP_A_TO_A_SIZE #x0CB9)
1254(define-enum GL_PIXEL_MAP_S_TO_S #x0C71)
1255(define-enum GL_PIXEL_MAP_I_TO_I #x0C70)
1256(define-enum GL_PIXEL_MAP_I_TO_R #x0C72)
1257(define-enum GL_PIXEL_MAP_I_TO_G #x0C73)
1258(define-enum GL_PIXEL_MAP_I_TO_B #x0C74)
1259(define-enum GL_PIXEL_MAP_I_TO_A #x0C75)
1260(define-enum GL_PIXEL_MAP_R_TO_R #x0C76)
1261(define-enum GL_PIXEL_MAP_G_TO_G #x0C77)
1262(define-enum GL_PIXEL_MAP_B_TO_B #x0C78)
1263(define-enum GL_PIXEL_MAP_A_TO_A #x0C79)
1264(define-enum GL_PACK_ALIGNMENT #x0D05)
1265(define-enum GL_PACK_LSB_FIRST #x0D01)
1266(define-enum GL_PACK_ROW_LENGTH #x0D02)
1267(define-enum GL_PACK_SKIP_PIXELS #x0D04)
1268(define-enum GL_PACK_SKIP_ROWS #x0D03)
1269(define-enum GL_PACK_SWAP_BYTES #x0D00)
1270(define-enum GL_UNPACK_ALIGNMENT #x0CF5)
1271(define-enum GL_UNPACK_LSB_FIRST #x0CF1)
1272(define-enum GL_UNPACK_ROW_LENGTH #x0CF2)
1273(define-enum GL_UNPACK_SKIP_PIXELS #x0CF4)
1274(define-enum GL_UNPACK_SKIP_ROWS #x0CF3)
1275(define-enum GL_UNPACK_SWAP_BYTES #x0CF0)
1276(define-enum GL_ZOOM_X #x0D16)
1277(define-enum GL_ZOOM_Y #x0D17)
1278(define-enum GL_TEXTURE_ENV #x2300)
1279(define-enum GL_TEXTURE_ENV_MODE #x2200)
1280(define-enum GL_TEXTURE_1D #x0DE0)
1281(define-enum GL_TEXTURE_2D #x0DE1)
1282(define-enum GL_TEXTURE_WRAP_S #x2802)
1283(define-enum GL_TEXTURE_WRAP_T #x2803)
1284(define-enum GL_TEXTURE_MAG_FILTER #x2800)
1285(define-enum GL_TEXTURE_MIN_FILTER #x2801)
1286(define-enum GL_TEXTURE_ENV_COLOR #x2201)
1287(define-enum GL_TEXTURE_GEN_S #x0C60)
1288(define-enum GL_TEXTURE_GEN_T #x0C61)
1289(define-enum GL_TEXTURE_GEN_MODE #x2500)
1290(define-enum GL_TEXTURE_BORDER_COLOR #x1004)
1291(define-enum GL_TEXTURE_WIDTH #x1000)
1292(define-enum GL_TEXTURE_HEIGHT #x1001)
1293(define-enum GL_TEXTURE_BORDER #x1005)
1294(define-enum GL_TEXTURE_COMPONENTS #x1003)
1295(define-enum GL_TEXTURE_RED_SIZE #x805C)
1296(define-enum GL_TEXTURE_GREEN_SIZE #x805D)
1297(define-enum GL_TEXTURE_BLUE_SIZE #x805E)
1298(define-enum GL_TEXTURE_ALPHA_SIZE #x805F)
1299(define-enum GL_TEXTURE_LUMINANCE_SIZE #x8060)
1300(define-enum GL_TEXTURE_INTENSITY_SIZE #x8061)
1301(define-enum GL_NEAREST_MIPMAP_NEAREST #x2700)
1302(define-enum GL_NEAREST_MIPMAP_LINEAR #x2702)
1303(define-enum GL_LINEAR_MIPMAP_NEAREST #x2701)
1304(define-enum GL_LINEAR_MIPMAP_LINEAR #x2703)
1305(define-enum GL_OBJECT_LINEAR #x2401)
1306(define-enum GL_OBJECT_PLANE #x2501)
1307(define-enum GL_EYE_LINEAR #x2400)
1308(define-enum GL_EYE_PLANE #x2502)
1309(define-enum GL_SPHERE_MAP #x2402)
1310(define-enum GL_DECAL #x2101)
1311(define-enum GL_MODULATE #x2100)
1312(define-enum GL_NEAREST #x2600)
1313(define-enum GL_REPEAT #x2901)
1314(define-enum GL_CLAMP #x2900)
1315(define-enum GL_S #x2000)
1316(define-enum GL_T #x2001)
1317(define-enum GL_R #x2002)
1318(define-enum GL_Q #x2003)
1319(define-enum GL_TEXTURE_GEN_R #x0C62)
1320(define-enum GL_TEXTURE_GEN_Q #x0C63)
1321(define-enum GL_VENDOR #x1F00)
1322(define-enum GL_RENDERER #x1F01)
1323(define-enum GL_VERSION #x1F02)
1324(define-enum GL_EXTENSIONS #x1F03)
1325(define-enum GL_NO_ERROR #x0)
1326(define-enum GL_INVALID_VALUE #x0501)
1327(define-enum GL_INVALID_ENUM #x0500)
1328(define-enum GL_INVALID_OPERATION #x0502)
1329(define-enum GL_STACK_OVERFLOW #x0503)
1330(define-enum GL_STACK_UNDERFLOW #x0504)
1331(define-enum GL_OUT_OF_MEMORY #x0505)
1332(define-enum GL_CURRENT_BIT #x00000001)
1333(define-enum GL_POINT_BIT #x00000002)
1334(define-enum GL_LINE_BIT #x00000004)
1335(define-enum GL_POLYGON_BIT #x00000008)
1336(define-enum GL_POLYGON_STIPPLE_BIT #x00000010)
1337(define-enum GL_PIXEL_MODE_BIT #x00000020)
1338(define-enum GL_LIGHTING_BIT #x00000040)
1339(define-enum GL_FOG_BIT #x00000080)
1340(define-enum GL_DEPTH_BUFFER_BIT #x00000100)
1341(define-enum GL_ACCUM_BUFFER_BIT #x00000200)
1342(define-enum GL_STENCIL_BUFFER_BIT #x00000400)
1343(define-enum GL_VIEWPORT_BIT #x00000800)
1344(define-enum GL_TRANSFORM_BIT #x00001000)
1345(define-enum GL_ENABLE_BIT #x00002000)
1346(define-enum GL_COLOR_BUFFER_BIT #x00004000)
1347(define-enum GL_HINT_BIT #x00008000)
1348(define-enum GL_EVAL_BIT #x00010000)
1349(define-enum GL_LIST_BIT #x00020000)
1350(define-enum GL_TEXTURE_BIT #x00040000)
1351(define-enum GL_SCISSOR_BIT #x00080000)
1352(define-enum GL_ALL_ATTRIB_BITS #x000FFFFF)
1353(define-enum GL_PROXY_TEXTURE_1D #x8063)
1354(define-enum GL_PROXY_TEXTURE_2D #x8064)
1355(define-enum GL_TEXTURE_PRIORITY #x8066)
1356(define-enum GL_TEXTURE_RESIDENT #x8067)
1357(define-enum GL_TEXTURE_BINDING_1D #x8068)
1358(define-enum GL_TEXTURE_BINDING_2D #x8069)
1359(define-enum GL_TEXTURE_INTERNAL_FORMAT #x1003)
1360(define-enum GL_ALPHA4 #x803B)
1361(define-enum GL_ALPHA8 #x803C)
1362(define-enum GL_ALPHA12 #x803D)
1363(define-enum GL_ALPHA16 #x803E)
1364(define-enum GL_LUMINANCE4 #x803F)
1365(define-enum GL_LUMINANCE8 #x8040)
1366(define-enum GL_LUMINANCE12 #x8041)
1367(define-enum GL_LUMINANCE16 #x8042)
1368(define-enum GL_LUMINANCE4_ALPHA4 #x8043)
1369(define-enum GL_LUMINANCE6_ALPHA2 #x8044)
1370(define-enum GL_LUMINANCE8_ALPHA8 #x8045)
1371(define-enum GL_LUMINANCE12_ALPHA4 #x8046)
1372(define-enum GL_LUMINANCE12_ALPHA12 #x8047)
1373(define-enum GL_LUMINANCE16_ALPHA16 #x8048)
1374(define-enum GL_INTENSITY #x8049)
1375(define-enum GL_INTENSITY4 #x804A)
1376(define-enum GL_INTENSITY8 #x804B)
1377(define-enum GL_INTENSITY12 #x804C)
1378(define-enum GL_INTENSITY16 #x804D)
1379(define-enum GL_R3_G3_B2 #x2A10)
1380(define-enum GL_RGB4 #x804F)
1381(define-enum GL_RGB5 #x8050)
1382(define-enum GL_RGB8 #x8051)
1383(define-enum GL_RGB10 #x8052)
1384(define-enum GL_RGB12 #x8053)
1385(define-enum GL_RGB16 #x8054)
1386(define-enum GL_RGBA2 #x8055)
1387(define-enum GL_RGBA4 #x8056)
1388(define-enum GL_RGB5_A1 #x8057)
1389(define-enum GL_RGBA8 #x8058)
1390(define-enum GL_RGB10_A2 #x8059)
1391(define-enum GL_RGBA12 #x805A)
1392(define-enum GL_RGBA16 #x805B)
1393(define-enum GL_CLIENT_PIXEL_STORE_BIT #x00000001)
1394(define-enum GL_CLIENT_VERTEX_ARRAY_BIT #x00000002)
1395(define-enum GL_ALL_CLIENT_ATTRIB_BITS #xFFFFFFFF)
1396(define-enum GL_CLIENT_ALL_ATTRIB_BITS #xFFFFFFFF)
1397
1398;; These values are taken from SGI's glext.h.
1399(define-enum 12 GL_UNSIGNED_BYTE_3_3_2 #x8032)
1400(define-enum 12 GL_UNSIGNED_SHORT_4_4_4_4 #x8033)
1401(define-enum 12 GL_UNSIGNED_SHORT_5_5_5_1 #x8034)
1402(define-enum 12 GL_UNSIGNED_INT_8_8_8_8 #x8035)
1403(define-enum 12 GL_UNSIGNED_INT_10_10_10_2 #x8036)
1404(define-enum 12 GL_RESCALE_NORMAL #x803A)
1405(define-enum 12 GL_TEXTURE_BINDING_3D #x806A)
1406(define-enum 12 GL_PACK_SKIP_IMAGES #x806B)
1407(define-enum 12 GL_PACK_IMAGE_HEIGHT #x806C)
1408(define-enum 12 GL_UNPACK_SKIP_IMAGES #x806D)
1409(define-enum 12 GL_UNPACK_IMAGE_HEIGHT #x806E)
1410(define-enum 12 GL_TEXTURE_3D #x806F)
1411(define-enum 12 GL_PROXY_TEXTURE_3D #x8070)
1412(define-enum 12 GL_TEXTURE_DEPTH #x8071)
1413(define-enum 12 GL_TEXTURE_WRAP_R #x8072)
1414(define-enum 12 GL_MAX_3D_TEXTURE_SIZE #x8073)
1415(define-enum 12 GL_UNSIGNED_BYTE_2_3_3_REV #x8362)
1416(define-enum 12 GL_UNSIGNED_SHORT_5_6_5 #x8363)
1417(define-enum 12 GL_UNSIGNED_SHORT_5_6_5_REV #x8364)
1418(define-enum 12 GL_UNSIGNED_SHORT_4_4_4_4_REV #x8365)
1419(define-enum 12 GL_UNSIGNED_SHORT_1_5_5_5_REV #x8366)
1420(define-enum 12 GL_UNSIGNED_INT_8_8_8_8_REV #x8367)
1421(define-enum 12 GL_UNSIGNED_INT_2_10_10_10_REV #x8368)
1422(define-enum 12 GL_BGR #x80E0)
1423(define-enum 12 GL_BGRA #x80E1)
1424(define-enum 12 GL_MAX_ELEMENTS_VERTICES #x80E8)
1425(define-enum 12 GL_MAX_ELEMENTS_INDICES #x80E9)
1426(define-enum 12 GL_CLAMP_TO_EDGE #x812F)
1427(define-enum 12 GL_TEXTURE_MIN_LOD #x813A)
1428(define-enum 12 GL_TEXTURE_MAX_LOD #x813B)
1429(define-enum 12 GL_TEXTURE_BASE_LEVEL #x813C)
1430(define-enum 12 GL_TEXTURE_MAX_LEVEL #x813D)
1431(define-enum 12 GL_LIGHT_MODEL_COLOR_CONTROL #x81F8)
1432(define-enum 12 GL_SINGLE_COLOR #x81F9)
1433(define-enum 12 GL_SEPARATE_SPECULAR_COLOR #x81FA)
1434(define-enum 12 GL_SMOOTH_POINT_SIZE_RANGE #x0B12)
1435(define-enum 12 GL_SMOOTH_POINT_SIZE_GRANULARITY #x0B13)
1436(define-enum 12 GL_SMOOTH_LINE_WIDTH_RANGE #x0B22)
1437(define-enum 12 GL_SMOOTH_LINE_WIDTH_GRANULARITY #x0B23)
1438(define-enum 12 GL_ALIASED_POINT_SIZE_RANGE #x846D)
1439(define-enum 12 GL_ALIASED_LINE_WIDTH_RANGE #x846E)
1440
1441(define-enum 'img GL_CONSTANT_COLOR #x8001)
1442(define-enum 'img GL_ONE_MINUS_CONSTANT_COLOR #x8002)
1443(define-enum 'img GL_CONSTANT_ALPHA #x8003)
1444(define-enum 'img GL_ONE_MINUS_CONSTANT_ALPHA #x8004)
1445(define-enum 'img GL_BLEND_COLOR #x8005)
1446(define-enum 'img GL_FUNC_ADD #x8006)
1447(define-enum 'img GL_MIN #x8007)
1448(define-enum 'img GL_MAX #x8008)
1449(define-enum 'img GL_BLEND_EQUATION #x8009)
1450(define-enum 'img GL_FUNC_SUBTRACT #x800A)
1451(define-enum 'img GL_FUNC_REVERSE_SUBTRACT #x800B)
1452(define-enum 'img GL_CONVOLUTION_1D #x8010)
1453(define-enum 'img GL_CONVOLUTION_2D #x8011)
1454(define-enum 'img GL_SEPARABLE_2D #x8012)
1455(define-enum 'img GL_CONVOLUTION_BORDER_MODE #x8013)
1456(define-enum 'img GL_CONVOLUTION_FILTER_SCALE #x8014)
1457(define-enum 'img GL_CONVOLUTION_FILTER_BIAS #x8015)
1458(define-enum 'img GL_REDUCE #x8016)
1459(define-enum 'img GL_CONVOLUTION_FORMAT #x8017)
1460(define-enum 'img GL_CONVOLUTION_WIDTH #x8018)
1461(define-enum 'img GL_CONVOLUTION_HEIGHT #x8019)
1462(define-enum 'img GL_MAX_CONVOLUTION_WIDTH #x801A)
1463(define-enum 'img GL_MAX_CONVOLUTION_HEIGHT #x801B)
1464(define-enum 'img GL_POST_CONVOLUTION_RED_SCALE #x801C)
1465(define-enum 'img GL_POST_CONVOLUTION_GREEN_SCALE #x801D)
1466(define-enum 'img GL_POST_CONVOLUTION_BLUE_SCALE #x801E)
1467(define-enum 'img GL_POST_CONVOLUTION_ALPHA_SCALE #x801F)
1468(define-enum 'img GL_POST_CONVOLUTION_RED_BIAS #x8020)
1469(define-enum 'img GL_POST_CONVOLUTION_GREEN_BIAS #x8021)
1470(define-enum 'img GL_POST_CONVOLUTION_BLUE_BIAS #x8022)
1471(define-enum 'img GL_POST_CONVOLUTION_ALPHA_BIAS #x8023)
1472(define-enum 'img GL_HISTOGRAM #x8024)
1473(define-enum 'img GL_PROXY_HISTOGRAM #x8025)
1474(define-enum 'img GL_HISTOGRAM_WIDTH #x8026)
1475(define-enum 'img GL_HISTOGRAM_FORMAT #x8027)
1476(define-enum 'img GL_HISTOGRAM_RED_SIZE #x8028)
1477(define-enum 'img GL_HISTOGRAM_GREEN_SIZE #x8029)
1478(define-enum 'img GL_HISTOGRAM_BLUE_SIZE #x802A)
1479(define-enum 'img GL_HISTOGRAM_ALPHA_SIZE #x802B)
1480(define-enum 'img GL_HISTOGRAM_LUMINANCE_SIZE #x802C)
1481(define-enum 'img GL_HISTOGRAM_SINK #x802D)
1482(define-enum 'img GL_MINMAX #x802E)
1483(define-enum 'img GL_MINMAX_FORMAT #x802F)
1484(define-enum 'img GL_MINMAX_SINK #x8030)
1485(define-enum 'img GL_TABLE_TOO_LARGE #x8031)
1486(define-enum 'img GL_COLOR_MATRIX #x80B1)
1487(define-enum 'img GL_COLOR_MATRIX_STACK_DEPTH #x80B2)
1488(define-enum 'img GL_MAX_COLOR_MATRIX_STACK_DEPTH #x80B3)
1489(define-enum 'img GL_POST_COLOR_MATRIX_RED_SCALE #x80B4)
1490(define-enum 'img GL_POST_COLOR_MATRIX_GREEN_SCALE #x80B5)
1491(define-enum 'img GL_POST_COLOR_MATRIX_BLUE_SCALE #x80B6)
1492(define-enum 'img GL_POST_COLOR_MATRIX_ALPHA_SCALE #x80B7)
1493(define-enum 'img GL_POST_COLOR_MATRIX_RED_BIAS #x80B8)
1494(define-enum 'img GL_POST_COLOR_MATRIX_GREEN_BIAS #x80B9)
1495(define-enum 'img GL_POST_COLOR_MATRIX_BLUE_BIAS #x80BA)
1496(define-enum 'img GL_POST_COLOR_MATRIX_ALPHA_BIAS #x80BB)
1497(define-enum 'img GL_COLOR_TABLE #x80D0)
1498(define-enum 'img GL_POST_CONVOLUTION_COLOR_TABLE #x80D1)
1499(define-enum 'img GL_POST_COLOR_MATRIX_COLOR_TABLE #x80D2)
1500(define-enum 'img GL_PROXY_COLOR_TABLE #x80D3)
1501(define-enum 'img GL_PROXY_POST_CONVOLUTION_COLOR_TABLE #x80D4)
1502(define-enum 'img GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE #x80D5)
1503(define-enum 'img GL_COLOR_TABLE_SCALE #x80D6)
1504(define-enum 'img GL_COLOR_TABLE_BIAS #x80D7)
1505(define-enum 'img GL_COLOR_TABLE_FORMAT #x80D8)
1506(define-enum 'img GL_COLOR_TABLE_WIDTH #x80D9)
1507(define-enum 'img GL_COLOR_TABLE_RED_SIZE #x80DA)
1508(define-enum 'img GL_COLOR_TABLE_GREEN_SIZE #x80DB)
1509(define-enum 'img GL_COLOR_TABLE_BLUE_SIZE #x80DC)
1510(define-enum 'img GL_COLOR_TABLE_ALPHA_SIZE #x80DD)
1511(define-enum 'img GL_COLOR_TABLE_LUMINANCE_SIZE #x80DE)
1512(define-enum 'img GL_COLOR_TABLE_INTENSITY_SIZE #x80DF)
1513(define-enum 'img GL_CONSTANT_BORDER #x8151)
1514(define-enum 'img GL_REPLICATE_BORDER #x8153)
1515(define-enum 'img GL_CONVOLUTION_BORDER_COLOR #x8154)
1516
1517(define-enum 13 GL_TEXTURE0 #x84C0)
1518(define-enum 13 GL_TEXTURE1 #x84C1)
1519(define-enum 13 GL_TEXTURE2 #x84C2)
1520(define-enum 13 GL_TEXTURE3 #x84C3)
1521(define-enum 13 GL_TEXTURE4 #x84C4)
1522(define-enum 13 GL_TEXTURE5 #x84C5)
1523(define-enum 13 GL_TEXTURE6 #x84C6)
1524(define-enum 13 GL_TEXTURE7 #x84C7)
1525(define-enum 13 GL_TEXTURE8 #x84C8)
1526(define-enum 13 GL_TEXTURE9 #x84C9)
1527(define-enum 13 GL_TEXTURE10 #x84CA)
1528(define-enum 13 GL_TEXTURE11 #x84CB)
1529(define-enum 13 GL_TEXTURE12 #x84CC)
1530(define-enum 13 GL_TEXTURE13 #x84CD)
1531(define-enum 13 GL_TEXTURE14 #x84CE)
1532(define-enum 13 GL_TEXTURE15 #x84CF)
1533(define-enum 13 GL_TEXTURE16 #x84D0)
1534(define-enum 13 GL_TEXTURE17 #x84D1)
1535(define-enum 13 GL_TEXTURE18 #x84D2)
1536(define-enum 13 GL_TEXTURE19 #x84D3)
1537(define-enum 13 GL_TEXTURE20 #x84D4)
1538(define-enum 13 GL_TEXTURE21 #x84D5)
1539(define-enum 13 GL_TEXTURE22 #x84D6)
1540(define-enum 13 GL_TEXTURE23 #x84D7)
1541(define-enum 13 GL_TEXTURE24 #x84D8)
1542(define-enum 13 GL_TEXTURE25 #x84D9)
1543(define-enum 13 GL_TEXTURE26 #x84DA)
1544(define-enum 13 GL_TEXTURE27 #x84DB)
1545(define-enum 13 GL_TEXTURE28 #x84DC)
1546(define-enum 13 GL_TEXTURE29 #x84DD)
1547(define-enum 13 GL_TEXTURE30 #x84DE)
1548(define-enum 13 GL_TEXTURE31 #x84DF)
1549(define-enum 13 GL_ACTIVE_TEXTURE #x84E0)
1550(define-enum 13 GL_CLIENT_ACTIVE_TEXTURE #x84E1)
1551(define-enum 13 GL_MAX_TEXTURE_UNITS #x84E2)
1552(define-enum 13 GL_TRANSPOSE_MODELVIEW_MATRIX #x84E3)
1553(define-enum 13 GL_TRANSPOSE_PROJECTION_MATRIX #x84E4)
1554(define-enum 13 GL_TRANSPOSE_TEXTURE_MATRIX #x84E5)
1555(define-enum 13 GL_TRANSPOSE_COLOR_MATRIX #x84E6)
1556(define-enum 13 GL_MULTISAMPLE #x809D)
1557(define-enum 13 GL_SAMPLE_ALPHA_TO_COVERAGE #x809E)
1558(define-enum 13 GL_SAMPLE_ALPHA_TO_ONE #x809F)
1559(define-enum 13 GL_SAMPLE_COVERAGE #x80A0)
1560(define-enum 13 GL_SAMPLE_BUFFERS #x80A8)
1561(define-enum 13 GL_SAMPLES #x80A9)
1562(define-enum 13 GL_SAMPLE_COVERAGE_VALUE #x80AA)
1563(define-enum 13 GL_SAMPLE_COVERAGE_INVERT #x80AB)
1564(define-enum 13 GL_MULTISAMPLE_BIT #x20000000)
1565(define-enum 13 GL_NORMAL_MAP #x8511)
1566(define-enum 13 GL_REFLECTION_MAP #x8512)
1567(define-enum 13 GL_TEXTURE_CUBE_MAP #x8513)
1568(define-enum 13 GL_TEXTURE_BINDING_CUBE_MAP #x8514)
1569(define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_X #x8515)
1570(define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_X #x8516)
1571(define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_Y #x8517)
1572(define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y #x8518)
1573(define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_Z #x8519)
1574(define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z #x851A)
1575(define-enum 13 GL_PROXY_TEXTURE_CUBE_MAP #x851B)
1576(define-enum 13 GL_MAX_CUBE_MAP_TEXTURE_SIZE #x851C)
1577(define-enum 13 GL_COMPRESSED_ALPHA #x84E9)
1578(define-enum 13 GL_COMPRESSED_LUMINANCE #x84EA)
1579(define-enum 13 GL_COMPRESSED_LUMINANCE_ALPHA #x84EB)
1580(define-enum 13 GL_COMPRESSED_INTENSITY #x84EC)
1581(define-enum 13 GL_COMPRESSED_RGB #x84ED)
1582(define-enum 13 GL_COMPRESSED_RGBA #x84EE)
1583(define-enum 13 GL_TEXTURE_COMPRESSION_HINT #x84EF)
1584(define-enum 13 GL_TEXTURE_COMPRESSED_IMAGE_SIZE #x86A0)
1585(define-enum 13 GL_TEXTURE_COMPRESSED #x86A1)
1586(define-enum 13 GL_NUM_COMPRESSED_TEXTURE_FORMATS #x86A2)
1587(define-enum 13 GL_COMPRESSED_TEXTURE_FORMATS #x86A3)
1588(define-enum 13 GL_CLAMP_TO_BORDER #x812D)
1589(define-enum 13 GL_COMBINE #x8570)
1590(define-enum 13 GL_COMBINE_RGB #x8571)
1591(define-enum 13 GL_COMBINE_ALPHA #x8572)
1592(define-enum 13 GL_SOURCE0_RGB #x8580)
1593(define-enum 13 GL_SOURCE1_RGB #x8581)
1594(define-enum 13 GL_SOURCE2_RGB #x8582)
1595(define-enum 13 GL_SOURCE0_ALPHA #x8588)
1596(define-enum 13 GL_SOURCE1_ALPHA #x8589)
1597(define-enum 13 GL_SOURCE2_ALPHA #x858A)
1598(define-enum 13 GL_OPERAND0_RGB #x8590)
1599(define-enum 13 GL_OPERAND1_RGB #x8591)
1600(define-enum 13 GL_OPERAND2_RGB #x8592)
1601(define-enum 13 GL_OPERAND0_ALPHA #x8598)
1602(define-enum 13 GL_OPERAND1_ALPHA #x8599)
1603(define-enum 13 GL_OPERAND2_ALPHA #x859A)
1604(define-enum 13 GL_RGB_SCALE #x8573)
1605(define-enum 13 GL_ADD_SIGNED #x8574)
1606(define-enum 13 GL_INTERPOLATE #x8575)
1607(define-enum 13 GL_SUBTRACT #x84E7)
1608(define-enum 13 GL_CONSTANT #x8576)
1609(define-enum 13 GL_PRIMARY_COLOR #x8577)
1610(define-enum 13 GL_PREVIOUS #x8578)
1611(define-enum 13 GL_DOT3_RGB #x86AE)
1612(define-enum 13 GL_DOT3_RGBA #x86AF)
1613
1614(define-enum 14 GL_BLEND_DST_RGB #x80C8)
1615(define-enum 14 GL_BLEND_SRC_RGB #x80C9)
1616(define-enum 14 GL_BLEND_DST_ALPHA #x80CA)
1617(define-enum 14 GL_BLEND_SRC_ALPHA #x80CB)
1618(define-enum 14 GL_POINT_SIZE_MIN #x8126)
1619(define-enum 14 GL_POINT_SIZE_MAX #x8127)
1620(define-enum 14 GL_POINT_FADE_THRESHOLD_SIZE #x8128)
1621(define-enum 14 GL_POINT_DISTANCE_ATTENUATION #x8129)
1622(define-enum 14 GL_GENERATE_MIPMAP #x8191)
1623(define-enum 14 GL_GENERATE_MIPMAP_HINT #x8192)
1624(define-enum 14 GL_DEPTH_COMPONENT16 #x81A5)
1625(define-enum 14 GL_DEPTH_COMPONENT24 #x81A6)
1626(define-enum 14 GL_DEPTH_COMPONENT32 #x81A7)
1627(define-enum 14 GL_MIRRORED_REPEAT #x8370)
1628(define-enum 14 GL_FOG_COORDINATE_SOURCE #x8450)
1629(define-enum 14 GL_FOG_COORDINATE #x8451)
1630(define-enum 14 GL_FRAGMENT_DEPTH #x8452)
1631(define-enum 14 GL_CURRENT_FOG_COORDINATE #x8453)
1632(define-enum 14 GL_FOG_COORDINATE_ARRAY_TYPE #x8454)
1633(define-enum 14 GL_FOG_COORDINATE_ARRAY_STRIDE #x8455)
1634(define-enum 14 GL_FOG_COORDINATE_ARRAY_POINTER #x8456)
1635(define-enum 14 GL_FOG_COORDINATE_ARRAY #x8457)
1636(define-enum 14 GL_COLOR_SUM #x8458)
1637(define-enum 14 GL_CURRENT_SECONDARY_COLOR #x8459)
1638(define-enum 14 GL_SECONDARY_COLOR_ARRAY_SIZE #x845A)
1639(define-enum 14 GL_SECONDARY_COLOR_ARRAY_TYPE #x845B)
1640(define-enum 14 GL_SECONDARY_COLOR_ARRAY_STRIDE #x845C)
1641(define-enum 14 GL_SECONDARY_COLOR_ARRAY_POINTER #x845D)
1642(define-enum 14 GL_SECONDARY_COLOR_ARRAY #x845E)
1643(define-enum 14 GL_MAX_TEXTURE_LOD_BIAS #x84FD)
1644(define-enum 14 GL_TEXTURE_FILTER_CONTROL #x8500)
1645(define-enum 14 GL_TEXTURE_LOD_BIAS #x8501)
1646(define-enum 14 GL_INCR_WRAP #x8507)
1647(define-enum 14 GL_DECR_WRAP #x8508)
1648(define-enum 14 GL_TEXTURE_DEPTH_SIZE #x884A)
1649(define-enum 14 GL_DEPTH_TEXTURE_MODE #x884B)
1650(define-enum 14 GL_TEXTURE_COMPARE_MODE #x884C)
1651(define-enum 14 GL_TEXTURE_COMPARE_FUNC #x884D)
1652(define-enum 14 GL_COMPARE_R_TO_TEXTURE #x884E)
1653
1654(define-enum 15 GL_BUFFER_SIZE #x8764)
1655(define-enum 15 GL_BUFFER_USAGE #x8765)
1656(define-enum 15 GL_QUERY_COUNTER_BITS #x8864)
1657(define-enum 15 GL_CURRENT_QUERY #x8865)
1658(define-enum 15 GL_QUERY_RESULT #x8866)
1659(define-enum 15 GL_QUERY_RESULT_AVAILABLE #x8867)
1660(define-enum 15 GL_ARRAY_BUFFER #x8892)
1661(define-enum 15 GL_ELEMENT_ARRAY_BUFFER #x8893)
1662(define-enum 15 GL_ARRAY_BUFFER_BINDING #x8894)
1663(define-enum 15 GL_ELEMENT_ARRAY_BUFFER_BINDING #x8895)
1664(define-enum 15 GL_VERTEX_ARRAY_BUFFER_BINDING #x8896)
1665(define-enum 15 GL_NORMAL_ARRAY_BUFFER_BINDING #x8897)
1666(define-enum 15 GL_COLOR_ARRAY_BUFFER_BINDING #x8898)
1667(define-enum 15 GL_INDEX_ARRAY_BUFFER_BINDING #x8899)
1668(define-enum 15 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING #x889A)
1669(define-enum 15 GL_EDGE_FLAG_ARRAY_BUFFER_BINDING #x889B)
1670(define-enum 15 GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING #x889C)
1671(define-enum 15 GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING #x889D)
1672(define-enum 15 GL_WEIGHT_ARRAY_BUFFER_BINDING #x889E)
1673(define-enum 15 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING #x889F)
1674(define-enum 15 GL_READ_ONLY #x88B8)
1675(define-enum 15 GL_WRITE_ONLY #x88B9)
1676(define-enum 15 GL_READ_WRITE #x88BA)
1677(define-enum 15 GL_BUFFER_ACCESS #x88BB)
1678(define-enum 15 GL_BUFFER_MAPPED #x88BC)
1679(define-enum 15 GL_BUFFER_MAP_POINTER #x88BD)
1680(define-enum 15 GL_STREAM_DRAW #x88E0)
1681(define-enum 15 GL_STREAM_READ #x88E1)
1682(define-enum 15 GL_STREAM_COPY #x88E2)
1683(define-enum 15 GL_STATIC_DRAW #x88E4)
1684(define-enum 15 GL_STATIC_READ #x88E5)
1685(define-enum 15 GL_STATIC_COPY #x88E6)
1686(define-enum 15 GL_DYNAMIC_DRAW #x88E8)
1687(define-enum 15 GL_DYNAMIC_READ #x88E9)
1688(define-enum 15 GL_DYNAMIC_COPY #x88EA)
1689(define-enum 15 GL_SAMPLES_PASSED #x8914)
1690(define-enum 15 GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE)
1691(define-enum 15 GL_FOG_COORD GL_FOG_COORDINATE)
1692(define-enum 15 GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE)
1693(define-enum 15 GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE)
1694(define-enum 15 GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE)
1695(define-enum 15 GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER)
1696(define-enum 15 GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY)
1697(define-enum 15 GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING)
1698(define-enum 15 GL_SRC0_RGB GL_SOURCE0_RGB)
1699(define-enum 15 GL_SRC1_RGB GL_SOURCE1_RGB)
1700(define-enum 15 GL_SRC2_RGB GL_SOURCE2_RGB)
1701(define-enum 15 GL_SRC0_ALPHA GL_SOURCE0_ALPHA)
1702(define-enum 15 GL_SRC1_ALPHA GL_SOURCE1_ALPHA)
1703(define-enum 15 GL_SRC2_ALPHA GL_SOURCE2_ALPHA)
1704
1705;; These values are taken from SGI's glu.h.
1706(define-enum GLU_FALSE 0)
1707(define-enum GLU_TRUE 1)
1708(define-enum GLU_VERSION 100800)
1709(define-enum GLU_EXTENSIONS 100801)
1710(define-enum GLU_INVALID_ENUM 100900)
1711(define-enum GLU_INVALID_VALUE 100901)
1712(define-enum GLU_OUT_OF_MEMORY 100902)
1713(define-enum GLU_INVALID_OPERATION 100904)
1714(define-enum GLU_OUTLINE_POLYGON 100240)
1715(define-enum GLU_OUTLINE_PATCH 100241)
1716(define-enum GLU_NURBS_ERROR 100103)
1717(define-enum GLU_ERROR 100103)
1718(define-enum GLU_NURBS_BEGIN 100164)
1719(define-enum GLU_NURBS_BEGIN_EXT 100164)
1720(define-enum GLU_NURBS_VERTEX 100165)
1721(define-enum GLU_NURBS_VERTEX_EXT 100165)
1722(define-enum GLU_NURBS_NORMAL 100166)
1723(define-enum GLU_NURBS_NORMAL_EXT 100166)
1724(define-enum GLU_NURBS_COLOR 100167)
1725(define-enum GLU_NURBS_COLOR_EXT 100167)
1726(define-enum GLU_NURBS_TEXTURE_COORD 100168)
1727(define-enum GLU_NURBS_TEX_COORD_EXT 100168)
1728(define-enum GLU_NURBS_END 100169)
1729(define-enum GLU_NURBS_END_EXT 100169)
1730(define-enum GLU_NURBS_BEGIN_DATA 100170)
1731(define-enum GLU_NURBS_BEGIN_DATA_EXT 100170)
1732(define-enum GLU_NURBS_VERTEX_DATA 100171)
1733(define-enum GLU_NURBS_VERTEX_DATA_EXT 100171)
1734(define-enum GLU_NURBS_NORMAL_DATA 100172)
1735(define-enum GLU_NURBS_NORMAL_DATA_EXT 100172)
1736(define-enum GLU_NURBS_COLOR_DATA 100173)
1737(define-enum GLU_NURBS_COLOR_DATA_EXT 100173)
1738(define-enum GLU_NURBS_TEXTURE_COORD_DATA 100174)
1739(define-enum GLU_NURBS_TEX_COORD_DATA_EXT 100174)
1740(define-enum GLU_NURBS_END_DATA 100175)
1741(define-enum GLU_NURBS_END_DATA_EXT 100175)
1742(define-enum GLU_NURBS_ERROR1 100251)
1743(define-enum GLU_NURBS_ERROR2 100252)
1744(define-enum GLU_NURBS_ERROR3 100253)
1745(define-enum GLU_NURBS_ERROR4 100254)
1746(define-enum GLU_NURBS_ERROR5 100255)
1747(define-enum GLU_NURBS_ERROR6 100256)
1748(define-enum GLU_NURBS_ERROR7 100257)
1749(define-enum GLU_NURBS_ERROR8 100258)
1750(define-enum GLU_NURBS_ERROR9 100259)
1751(define-enum GLU_NURBS_ERROR10 100260)
1752(define-enum GLU_NURBS_ERROR11 100261)
1753(define-enum GLU_NURBS_ERROR12 100262)
1754(define-enum GLU_NURBS_ERROR13 100263)
1755(define-enum GLU_NURBS_ERROR14 100264)
1756(define-enum GLU_NURBS_ERROR15 100265)
1757(define-enum GLU_NURBS_ERROR16 100266)
1758(define-enum GLU_NURBS_ERROR17 100267)
1759(define-enum GLU_NURBS_ERROR18 100268)
1760(define-enum GLU_NURBS_ERROR19 100269)
1761(define-enum GLU_NURBS_ERROR20 100270)
1762(define-enum GLU_NURBS_ERROR21 100271)
1763(define-enum GLU_NURBS_ERROR22 100272)
1764(define-enum GLU_NURBS_ERROR23 100273)
1765(define-enum GLU_NURBS_ERROR24 100274)
1766(define-enum GLU_NURBS_ERROR25 100275)
1767(define-enum GLU_NURBS_ERROR26 100276)
1768(define-enum GLU_NURBS_ERROR27 100277)
1769(define-enum GLU_NURBS_ERROR28 100278)
1770(define-enum GLU_NURBS_ERROR29 100279)
1771(define-enum GLU_NURBS_ERROR30 100280)
1772(define-enum GLU_NURBS_ERROR31 100281)
1773(define-enum GLU_NURBS_ERROR32 100282)
1774(define-enum GLU_NURBS_ERROR33 100283)
1775(define-enum GLU_NURBS_ERROR34 100284)
1776(define-enum GLU_NURBS_ERROR35 100285)
1777(define-enum GLU_NURBS_ERROR36 100286)
1778(define-enum GLU_NURBS_ERROR37 100287)
1779(define-enum GLU_AUTO_LOAD_MATRIX 100200)
1780(define-enum GLU_CULLING 100201)
1781(define-enum GLU_SAMPLING_TOLERANCE 100203)
1782(define-enum GLU_DISPLAY_MODE 100204)
1783(define-enum GLU_PARAMETRIC_TOLERANCE 100202)
1784(define-enum GLU_SAMPLING_METHOD 100205)
1785(define-enum GLU_U_STEP 100206)
1786(define-enum GLU_V_STEP 100207)
1787(define-enum GLU_NURBS_MODE 100160)
1788(define-enum GLU_NURBS_MODE_EXT 100160)
1789(define-enum GLU_NURBS_TESSELLATOR 100161)
1790(define-enum GLU_NURBS_TESSELLATOR_EXT 100161)
1791(define-enum GLU_NURBS_RENDERER 100162)
1792(define-enum GLU_NURBS_RENDERER_EXT 100162)
1793(define-enum GLU_OBJECT_PARAMETRIC_ERROR 100208)
1794(define-enum GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208)
1795(define-enum GLU_OBJECT_PATH_LENGTH 100209)
1796(define-enum GLU_OBJECT_PATH_LENGTH_EXT 100209)
1797(define-enum GLU_PATH_LENGTH 100215)
1798(define-enum GLU_PARAMETRIC_ERROR 100216)
1799(define-enum GLU_DOMAIN_DISTANCE 100217)
1800(define-enum GLU_MAP1_TRIM_2 100210)
1801(define-enum GLU_MAP1_TRIM_3 100211)
1802(define-enum GLU_POINT 100010)
1803(define-enum GLU_LINE 100011)
1804(define-enum GLU_FILL 100012)
1805(define-enum GLU_SILHOUETTE 100013)
1806(define-enum GLU_SMOOTH 100000)
1807(define-enum GLU_FLAT 100001)
1808(define-enum GLU_NONE 100002)
1809(define-enum GLU_OUTSIDE 100020)
1810(define-enum GLU_INSIDE 100021)
1811(define-enum GLU_TESS_BEGIN 100100)
1812(define-enum GLU_BEGIN 100100)
1813(define-enum GLU_TESS_VERTEX 100101)
1814(define-enum GLU_VERTEX 100101)
1815(define-enum GLU_TESS_END 100102)
1816(define-enum GLU_END 100102)
1817(define-enum GLU_TESS_ERROR 100103)
1818(define-enum GLU_TESS_EDGE_FLAG 100104)
1819(define-enum GLU_EDGE_FLAG 100104)
1820(define-enum GLU_TESS_COMBINE 100105)
1821(define-enum GLU_TESS_BEGIN_DATA 100106)
1822(define-enum GLU_TESS_VERTEX_DATA 100107)
1823(define-enum GLU_TESS_END_DATA 100108)
1824(define-enum GLU_TESS_ERROR_DATA 100109)
1825(define-enum GLU_TESS_EDGE_FLAG_DATA 100110)
1826(define-enum GLU_TESS_COMBINE_DATA 100111)
1827(define-enum GLU_CW 100120)
1828(define-enum GLU_CCW 100121)
1829(define-enum GLU_INTERIOR 100122)
1830(define-enum GLU_EXTERIOR 100123)
1831(define-enum GLU_UNKNOWN 100124)
1832(define-enum GLU_TESS_WINDING_RULE 100140)
1833(define-enum GLU_TESS_BOUNDARY_ONLY 100141)
1834(define-enum GLU_TESS_TOLERANCE 100142)
1835(define-enum GLU_TESS_ERROR1 100151)
1836(define-enum GLU_TESS_ERROR2 100152)
1837(define-enum GLU_TESS_ERROR3 100153)
1838(define-enum GLU_TESS_ERROR4 100154)
1839(define-enum GLU_TESS_ERROR5 100155)
1840(define-enum GLU_TESS_ERROR6 100156)
1841(define-enum GLU_TESS_ERROR7 100157)
1842(define-enum GLU_TESS_ERROR8 100158)
1843(define-enum GLU_TESS_MISSING_BEGIN_POLYGON 100151)
1844(define-enum GLU_TESS_MISSING_BEGIN_CONTOUR 100152)
1845(define-enum GLU_TESS_MISSING_END_POLYGON 100153)
1846(define-enum GLU_TESS_MISSING_END_CONTOUR 100154)
1847(define-enum GLU_TESS_COORD_TOO_LARGE 100155)
1848(define-enum GLU_TESS_NEED_COMBINE_CALLBACK 100156)
1849(define-enum GLU_TESS_WINDING_ODD 100130)
1850(define-enum GLU_TESS_WINDING_NONZERO 100131)
1851(define-enum GLU_TESS_WINDING_POSITIVE 100132)
1852(define-enum GLU_TESS_WINDING_NEGATIVE 100133)
1853(define-enum GLU_TESS_WINDING_ABS_GEQ_TWO 100134)
1854(define-enum GLU_TESS_MAX_COORD 1.0e150)
1855