#lang mzscheme (require mzlib/foreign "gl-types.rkt" "gl-vectors.rkt" "init.rkt") (unsafe!) (define stype (system-type)) (define gl-lib (case stype [(windows) (ffi-lib "opengl32")] [(macosx) (ffi-lib "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL")] [else (ffi-lib "libGL" '("1" ""))])) (define glu-lib (case stype [(windows) (ffi-lib "glu32")] [(macosx) (ffi-lib "/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU")] [else (ffi-lib "libGLU" '("1" ""))])) (define win32? (and (eq? 'windows stype) (equal? "win32\\i386" (path->string (system-library-subpath #f))))) (define-syntax _fun* (syntax-rules () [(_fun* x ...) (if win32? (_fun #:abi 'stdcall x ...) (_fun x ...))])) (define wglGetProcAddress (if (eq? 'windows stype) (get-ffi-obj 'wglGetProcAddress gl-lib (_fun* _string -> _fpointer)) (lambda (x) #f))) (define (unavailable name fun-type) (if (eq? 'windows stype) ;; Windows: try to get proc via wglGetProcAddress; ;; note that we need to delay the lookup until the ;; function is called, because wglGetProcAddress is ;; sensitive to the current GL context (lambda () (let ([sname (symbol->string name)]) (lambda args (let ([f (wglGetProcAddress sname)]) (if f (apply (function-ptr f fun-type) args) (error name "unavailable on this system")))))) ;; Other platforms: proc is not available (lambda () (lambda x (error name "unavailable on this system"))))) (define-syntax define-foreign-lib (syntax-rules (->) [(_ lib name type ... ->) (define-foreign-lib lib name type ... -> _void)] [(_ lib name type ...) (begin ;; (printf "~a\n" 'name) (provide name) (define name (let ([fun-type (_fun* type ...) ]) (get-ffi-obj 'name lib fun-type (unavailable 'name fun-type)))))])) (define-syntax define-foreign (syntax-rules () [(_ args ...) (define-foreign-lib gl-lib args ...)])) (define-for-syntax (get-type x err) (case (syntax-object->datum x) [(b) #'_gl-byte] [(s) #'_gl-short] [(i) #'_gl-int] [(f) #'_gl-float] [(d) #'_gl-double] [(ub) #'_gl-ubyte] [(us) #'_gl-ushort] [(ui) #'_gl-uint] [(bv) #'_gl-bytev] [(sv) #'_gl-shortv] [(iv) #'_gl-intv] [(fv) #'_gl-floatv] [(dv) #'_gl-doublev] [(ubv) #'_gl-ubytev] [(usv) #'_gl-ushortv] [(uiv) #'_gl-uintv] [else (raise-syntax-error #f "unknown GL type abbreviation" err x)])) (define-for-syntax (get-vtype x err) (case (syntax-object->datum x) [(bv) #'_gl-byte] [(sv) #'_gl-short] [(iv) #'_gl-int] [(fv) #'_gl-float] [(dv) #'_gl-double] [(ubv) #'_gl-ubyte] [(usv) #'_gl-ushort] [(uiv) #'_gl-uint] [else (raise-syntax-error #f "unknown GL type abbreviation" err x)])) (define-for-syntax (type-map type convert) (syntax-case type (: =) [(label : type) #`(label : #,(type-map #'type convert))] [(type = expr) #`(#,(type-map #'type convert) = expr)] [(label : type = expr) #`(label : #,(type-map #'type convert) = expr)] [_ (convert type)])) (define-syntax (define-foreign-tparm stx) (syntax-case stx (->) [(_ name (suffix ...) type ...) (let* ([name-sym (syntax-object->datum #'name)] [build-def (lambda (suffix) (with-syntax ([new-name (datum->syntax-object #'name (string->symbol (format "~a~a" name-sym (syntax-object->datum suffix))) #'name)] [(new-type ...) (map (lambda (type) (type-map type (lambda (type) (syntax-case type (T outT) [T (get-type suffix stx)] [(T n) #`(_cvector o #,(get-vtype suffix stx) n)] [_ type])))) (syntax->list #'(type ...)))]) #'(define-foreign new-name new-type ...)))]) (with-syntax ([(defs ...) (map build-def (syntax->list #'(suffix ...)))]) #'(begin defs ...)))])) ;; 2.5 (define-foreign glGetError -> _gl-enum) ;; 2.6.1 (define-foreign glBegin _gl-enum ->) (define-foreign glEnd ->) ;; 2.6.2 (define-foreign glEdgeFlag _gl-boolean ->) (define-foreign glEdgeFlagv _gl-booleanv ->) ;; 2.7 (define-foreign-tparm glVertex2 (s i f d) T T ->) (define-foreign-tparm glVertex3 (s i f d) T T T ->) (define-foreign-tparm glVertex4 (s i f d) T T T T ->) (define-foreign-tparm glVertex2 (sv iv fv dv) T ->) (define-foreign-tparm glVertex3 (sv iv fv dv) T ->) (define-foreign-tparm glVertex4 (sv iv fv dv) T ->) (define-foreign-tparm glTexCoord1 (s i f d) T ->) (define-foreign-tparm glTexCoord2 (s i f d) T T ->) (define-foreign-tparm glTexCoord3 (s i f d) T T T ->) (define-foreign-tparm glTexCoord4 (s i f d) T T T T ->) (define-foreign-tparm glTexCoord1 (sv iv fv dv) T ->) (define-foreign-tparm glTexCoord2 (sv iv fv dv) T ->) (define-foreign-tparm glTexCoord3 (sv iv fv dv) T ->) (define-foreign-tparm glTexCoord4 (sv iv fv dv) T ->) (define-foreign-tparm glMultiTexCoord1 (s i f d) _gl-enum T ->) (define-foreign-tparm glMultiTexCoord2 (s i f d) _gl-enum T T ->) (define-foreign-tparm glMultiTexCoord3 (s i f d) _gl-enum T T T ->) (define-foreign-tparm glMultiTexCoord4 (s i f d) _gl-enum T T T T ->) (define-foreign-tparm glMultiTexCoord1 (sv iv fv dv) _gl-enum T ->) (define-foreign-tparm glMultiTexCoord2 (sv iv fv dv) _gl-enum T ->) (define-foreign-tparm glMultiTexCoord3 (sv iv fv dv) _gl-enum T ->) (define-foreign-tparm glMultiTexCoord4 (sv iv fv dv) _gl-enum T ->) (define-foreign-tparm glNormal3 (b s i f d) T T T ->) (define-foreign-tparm glNormal3 (bv sv iv fv dv) T ->) (define-foreign-tparm glFogCoord (f d) T ->) (define-foreign-tparm glFogCoord (fv dv) T ->) (define-foreign-tparm glColor3 (b s i f d ub us ui) T T T ->) (define-foreign-tparm glColor4 (b s i f d ub us ui) T T T T ->) (define-foreign-tparm glColor3 (bv sv iv fv dv ubv usv uiv) T ->) (define-foreign-tparm glColor4 (bv sv iv fv dv ubv usv uiv) T ->) (define-foreign-tparm glSecondaryColor3 (b s i f d ub us ui) T T T ->) (define-foreign-tparm glSecondaryColor3 (bv sv iv fv dv ubv usv uiv) T ->) (define-foreign-tparm glIndex (s i f d ub) T ->) (define-foreign-tparm glIndex (sv iv fv dv ubv) T ->) ;; 2.8 #| (define-foreign glVertexPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glNormalPointer _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glColorPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glSecondaryColorPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glIndexPointer _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glFogCoordPointer _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glTexCoordPointer _gl-int _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glEdgeFlagPointer _gl-sizei _gl-voidv ->) (define-foreign glEnableClientState _gl-enum ->) (define-foreign glDisableClientState _gl-enum ->) (define-foreign glClientActiveTexture _gl-enum ->) (define-foreign glArrayElement _gl-int ->) (define-foreign glDrawArrays _gl-enum _gl-int _gl-sizei ->) (define-foreign glMultiDrawArrays _gl-enum _gl-intv _gl-sizeiv _gl-sizei ->) (define-foreign glDrawElements _gl-enum _gl-sizei _gl-enum _gl-voidv ->) (define-foreign glMultiDrawElements _gl-enum _gl-sizeiv _gl-enum _gl-voidvv _gl-sizei ->) (define-foreign glDrawRangeElements _gl-enum _gl-uint _gl-uint _gl-sizei _gl-enum _gl-voidv ->) (define-foreign glInterleavedArrays _gl-enum _gl-sizei _gl-voidv) |# ;; 2.9 #| (define-foreign glBindBuffer _gl-enum _gl-uint ->) (define-foreign glDeleteBuffers _gl-sizei gl_uintv ->) (define-foreign glGenBuffers _gl-sizei gl_uintv ->) (define-foreign glBufferData _gl-enum _gl-sizeiptr _gl_voidv _gl-enum ->) (define-foreign glBufferSubData _gl-enum _gl-intptr _gl-sizeiptr _gl_voidv ->) (define-foreign glMapBuffer _gl-enum _gl-enum -> _gl-voidv) (define-foreign glUnmapBuffer _gl-enum -> _gl-boolean) |# ;; 2.10 (define-foreign-tparm glRect (s i f d) T T T T ->) (define-foreign-tparm glRect (sv iv fv dv) T ->) ;; 2.11.1 (define-foreign glDepthRange _gl-clampd _gl-clampd ->) (define-foreign glViewport _gl-int _gl-int _gl-sizei _gl-sizei ->) ;; 2.11.2 (define-foreign glMatrixMode _gl-enum ->) (define-foreign glLoadMatrixf _gl-floatv ->) (define-foreign glLoadMatrixd _gl-doublev ->) (define-foreign glMultMatrixf _gl-floatv ->) (define-foreign glMultMatrixd _gl-doublev ->) (define-foreign glLoadTransposeMatrixf _gl-floatv ->) (define-foreign glLoadTransposeMatrixd _gl-doublev ->) (define-foreign glMultTransposeMatrixf _gl-floatv ->) (define-foreign glMultTransposeMatrixd _gl-doublev ->) (define-foreign glLoadIdentity ->) (define-foreign-tparm glRotate (f d) T T T T ->) (define-foreign-tparm glTranslate (f d) T T T ->) (define-foreign-tparm glScale (f d) T T T ->) (define-foreign glFrustum _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double ->) (define-foreign glOrtho _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double ->) (define-foreign glActiveTexture _gl-enum ->) (define-foreign glPushMatrix ->) (define-foreign glPopMatrix ->) ;; 2.11.3 (define-foreign glEnable _gl-enum ->) (define-foreign glDisable _gl-enum ->) ;; 2.11.4 (define-foreign-tparm glTexGen (i f d) _gl-enum _gl-enum T ->) (define-foreign-tparm glTexGen (iv fv dv) _gl-enum _gl-enum T ->) ;; 2.12 (define-foreign glClipPlane _gl-enum _gl-doublev ->) ;; 2.13 (define-foreign-tparm glRasterPos2 (s i f d) T T ->) (define-foreign-tparm glRasterPos3 (s i f d) T T T ->) (define-foreign-tparm glRasterPos4 (s i f d) T T T T ->) (define-foreign-tparm glRasterPos2 (sv iv fv dv) T ->) (define-foreign-tparm glRasterPos3 (sv iv fv dv) T ->) (define-foreign-tparm glRasterPos4 (sv iv fv dv) T ->) (define-foreign-tparm glWindowPos2 (s i f d) T T ->) (define-foreign-tparm glWindowPos3 (s i f d) T T T ->) (define-foreign-tparm glWindowPos2 (sv iv fv dv) T ->) (define-foreign-tparm glWindowPos3 (sv iv fv dv) T ->) ;; 2.14.1 (define-foreign glFrontFace _gl-enum ->) ;; 2.14.2 (define-foreign-tparm glMaterial (i f) _gl-enum _gl-enum T ->) (define-foreign-tparm glMaterial (iv fv) _gl-enum _gl-enum T ->) (define-foreign-tparm glLight (i f) _gl-enum _gl-enum T ->) (define-foreign-tparm glLight (iv fv) _gl-enum _gl-enum T ->) (define-foreign-tparm glLightModel (i f) _gl-enum T ->) (define-foreign-tparm glLightModel (iv fv) _gl-enum T ->) ;; 2.14.3 (define-foreign glColorMaterial _gl-enum _gl-enum ->) ;; 2.14.7 (define-foreign glShadeModel _gl-enum ->) ;; 3.3 (define-foreign glPointSize _gl-float ->) (define-foreign-tparm glPointParameter (i f) _gl-enum _gl-float ->) (define-foreign-tparm glPointParameter (iv fv) _gl-enum _gl-floatv ->) ;; 3.4 (define-foreign glLineWidth _gl-float ->) ;; 3.4.2 (define-foreign glLineStipple _gl-int _gl-ushort ->) ;; 3.5.1 (define-foreign glCullFace _gl-enum ->) ;; 3.5.2 (define-foreign glPolygonStipple _gl-ubytev ->) ;; 3.5.4 (define-foreign glPolygonMode _gl-enum _gl-enum ->) ;; 3.5.5 (define-foreign glPolygonOffset _gl-float _gl-float ->) ;; 3.6.1 (define-foreign-tparm glPixelStore (i f) _gl-enum T ->) ;; 3.6.3 (define-foreign-tparm glPixelTransfer (i f) _gl-enum T ->) (define-foreign-tparm glPixelMap (uiv usv fv) _gl-enum [_gl-sizei = (cvector-length l)] [l : T] ->) (define-foreign glColorTable _gl-enum _gl-enum _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign-tparm glColorTableParameter (iv fv) _gl-enum _gl-enum T ->) (define-foreign glCopyColorTable _gl-enum _gl-enum _gl-int _gl-int _gl-sizei ->) (define-foreign glColorSubTable _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glCopyColorSubTable _gl-enum _gl-sizei _gl-int _gl-int _gl-sizei ->) (define-foreign glConvolutionFilter2D _gl-enum _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign-tparm glConvolutionParameter (iv fv) _gl-enum _gl-enum T ->) (define-foreign glConvolutionFilter1D _gl-enum _gl-enum _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glSeparableFilter2D _gl-enum _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv _gl-voidv ->) (define-foreign glCopyConvolutionFilter2D _gl-enum _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei ->) (define-foreign glCopyConvolutionFilter1D _gl-enum _gl-enum _gl-int _gl-int _gl-sizei ->) (define-foreign glHistogram _gl-enum _gl-sizei _gl-enum _gl-boolean ->) (define-foreign glMinmax _gl-enum _gl-enum _gl-boolean ->) ;; 3.6.4 (define-foreign glDrawPixels _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glPixelZoom _gl-float _gl-float ->) ;; 3.6.5 (define-foreign-tparm glConvolutionParameter (i f) _gl-enum _gl-enum T ->) ;; 3.7 (define-foreign glBitmap _gl-sizei _gl-sizei _gl-float _gl-float _gl-float _gl-float _gl-ubytev ->) ;; 3.8.1 (define-foreign glTexImage3D _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei _gl-sizei _gl-int _gl-enum _gl-enum _gl-voidv ->) (define-foreign glTexImage2D _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei _gl-int _gl-enum _gl-enum _gl-voidv ->) (define-foreign glTexImage1D _gl-enum _gl-int _gl-int _gl-sizei _gl-int _gl-enum _gl-enum _gl-voidv ->) ;; 3.8.2 (define-foreign glCopyTexImage2D _gl-enum _gl-int _gl-enum _gl-int _gl-int _gl-sizei _gl-sizei _gl-int ->) (define-foreign glCopyTexImage1D _gl-enum _gl-int _gl-enum _gl-int _gl-int _gl-sizei _gl-int ->) (define-foreign glTexSubImage3D _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glTexSubImage2D _gl-enum _gl-int _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glTexSubImage1D _gl-enum _gl-int _gl-int _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glCopyTexSubImage3D _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei ->) (define-foreign glCopyTexSubImage2D _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei ->) (define-foreign glCopyTexSubImage1D _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei ->) ;; 3.8.3 (define-foreign glCompressedTexImage1D _gl-enum _gl-int _gl-enum _gl-sizei _gl-int _gl-sizei _gl-voidv ->) (define-foreign glCompressedTexImage2D _gl-enum _gl-int _gl-enum _gl-sizei _gl-sizei _gl-int _gl-sizei _gl-voidv ->) (define-foreign glCompressedTexImage3D _gl-enum _gl-int _gl-enum _gl-sizei _gl-sizei _gl-sizei _gl-int _gl-sizei _gl-voidv ->) (define-foreign glCompressedTexSubImage1D _gl-enum _gl-int _gl-int _gl-sizei _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glCompressedTexSubImage2D _gl-enum _gl-int _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum _gl-sizei _gl-voidv ->) (define-foreign glCompressedTexSubImage3D _gl-enum _gl-int _gl-int _gl-int _gl-int _gl-sizei _gl-sizei _gl-sizei _gl-enum _gl-sizei _gl-voidv ->) ;; 3.8.4 (define-foreign-tparm glTexParameter (i f) _gl-enum _gl-enum T ->) (define-foreign-tparm glTexParameter (iv fv) _gl-enum _gl-enum T ->) ;; 3.8.12 (define-foreign glBindTexture _gl-enum _gl-uint ->) (define-foreign glDeleteTextures [_gl-sizei = (cvector-length v)] [v : _gl-uintv] ->) (define-foreign glGenTextures [n : _gl-sizei] [r : (_cvector o _gl-uint n)] -> _void -> r) (define-foreign glAreTexturesResident [n : _gl-sizei = (cvector-length v)] [v : _gl-uintv] [r : (_cvector o _gl-boolean n)] -> [r2 : _gl-boolean] -> (values r2 r)) ;; 3.8.13 (define-foreign-tparm glTexEnv (i f) _gl-enum _gl-enum T ->) (define-foreign-tparm glTexEnv (iv fv) _gl-enum _gl-enum T ->) ;; 3.10 (define-foreign-tparm glFog (i f) _gl-enum T ->) (define-foreign-tparm glFog (iv fv) _gl-enum T ->) ;; 4.1.2 (define-foreign glScissor _gl-int _gl-int _gl-sizei _gl-sizei ->) ;; 4.1.3 (define-foreign glSampleCoverage _gl-clampf _gl-boolean ->) ;; 4.1.4 (define-foreign glAlphaFunc _gl-enum _gl-clampf ->) ;; 4.1.5 (define-foreign glStencilFunc _gl-enum _gl-int _gl-uint ->) (define-foreign glStencilOp _gl-enum _gl-enum _gl-enum ->) ;; 4.1.6 (define-foreign glDepthFunc _gl-enum ->) ;; 4.1.7 (define-foreign glBeginQuery _gl-enum _gl-uint ->) (define-foreign glEndQuery _gl-enum ->) (define-foreign glGenQueries [n : _gl-sizei] [r : (_cvector o _gl-uint n)] -> _void -> r) (define-foreign glDeleteQueries [_gl-sizei = (cvector-length v)] [v : _gl-uintv] ->) ;; 4.1.8 (define-foreign glBlendEquation _gl-enum ->) (define-foreign glBlendFuncSeparate _gl-enum _gl-enum _gl-enum _gl-enum ->) (define-foreign glBlendFunc _gl-enum _gl-enum ->) (define-foreign glBlendColor _gl-clampf _gl-clampf _gl-clampf _gl-clampf ->) ;; 4.1.10 (define-foreign glLogicOp _gl-enum ->) ;; 4.2.1 (define-foreign glDrawBuffer _gl-enum ->) ;; 4.2.2 (define-foreign glIndexMask _gl-uint ->) (define-foreign glColorMask _gl-boolean _gl-boolean _gl-boolean _gl-boolean ->) (define-foreign glDepthMask _gl-boolean ->) (define-foreign glStencilMask _gl-uint ->) ;; 4.2.3 (define-foreign glClear _gl-bitfield ->) (define-foreign glClearColor _gl-clampf _gl-clampf _gl-clampf _gl-clampf ->) (define-foreign glClearIndex _gl-float ->) (define-foreign glClearDepth _gl-clampd ->) (define-foreign glClearStencil _gl-int ->) (define-foreign glClearAccum _gl-float _gl-float _gl-float _gl-float ->) ;; 4.2.4 (define-foreign glAccum _gl-enum _gl-float ->) ;; 4.3.2 (define-foreign glReadPixels _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreign glReadBuffer _gl-enum ->) ;; 4.3.3 (define-foreign glCopyPixels _gl-int _gl-int _gl-sizei _gl-sizei _gl-enum ->) ;; 5.1 ;; Map1 and 2 appear to have a bug in the spec where the last argument is not ;; declared as a pointer (define-foreign-tparm glMap1 (f) _gl-enum T T _gl-int _gl-int _gl-floatv ->) (define-foreign-tparm glMap1 (d) _gl-enum T T _gl-int _gl-int _gl-doublev ->) (define-foreign-tparm glMap2 (f) _gl-enum T T _gl-int _gl-int T T _gl-int _gl-int _gl-floatv ->) (define-foreign-tparm glMap2 (d) _gl-enum T T _gl-int _gl-int T T _gl-int _gl-int _gl-doublev ->) (define-foreign-tparm glEvalCoord1 (f d) T ->) (define-foreign-tparm glEvalCoord2 (f d) T T ->) (define-foreign-tparm glEvalCoord1 (fv dv) T ->) (define-foreign-tparm glEvalCoord2 (fv dv) T ->) (define-foreign-tparm glMapGrid1 (f d) _gl-int T T ->) (define-foreign-tparm glMapGrid2 (f d) _gl-int T T _gl-int T T ->) (define-foreign glEvalMesh1 _gl-enum _gl-int _gl-int ->) (define-foreign glEvalMesh2 _gl-enum _gl-int _gl-int _gl-int _gl-int ->) (define-foreign glEvalPoint1 _gl-int ->) (define-foreign glEvalPoint2 _gl-int _gl-int ->) ;; 5.2 (define-foreign glInitNames ->) (define-foreign glPopName ->) (define-foreign glPushName _gl-uint ->) (define-foreign glLoadName _gl-uint ->) (define-foreign glRenderMode _gl-enum -> _gl-int) (define-struct select-buffer-object (ptr len)) (provide select-buffer->gl-uint-vector) (define (select-buffer->gl-uint-vector sbo) (unless (select-buffer-object? sbo) (raise-type-error 'select-buffer->gl-uint-vector "select-buffer-object" sbo)) (let* ([l (select-buffer-object-len sbo)] [p (select-buffer-object-ptr sbo)] [v (make-gl-uint-vector l)]) (let loop ([i 0]) (when (< i l) (gl-vector-set! v i (ptr-ref p _gl-uint i)) (loop (add1 i)))) v)) (define-foreign glSelectBuffer [n : _gl-sizei] [mem : _pointer = (malloc n _gl-uint 'raw)] -> _void -> (let ([o (make-select-buffer-object mem n)]) (register-finalizer o (lambda (sbo) (free (select-buffer-object-ptr sbo)))) o)) ;; 5.3 (define-struct feedback-buffer-object (ptr len)) (provide feedback-buffer->gl-float-vector) (define (feedback-buffer->gl-float-vector fbo) (unless (feedback-buffer-object? fbo) (raise-type-error 'feedback-buffer->gl-uint-vector "feedback-buffer-object" fbo)) (let* ([l (feedback-buffer-object-len fbo)] [p (feedback-buffer-object-ptr fbo)] [v (make-gl-float-vector l)]) (let loop ([i 0]) (when (< i l) (gl-vector-set! v i (ptr-ref p _gl-float i)) (loop (add1 i)))) v)) (define-foreign glFeedbackBuffer [n : _gl-sizei] _gl-enum [mem : _pointer = (malloc _gl-float n 'raw)] -> _void -> (let ([o (make-feedback-buffer-object mem n)]) (register-finalizer o (lambda (fbo) (free (feedback-buffer-object-ptr fbo)))) o)) (define-foreign glPassThrough _gl-float ->) ;; 5.4 (define-foreign glNewList _gl-uint _gl-enum ->) (define-foreign glEndList ->) (define-foreign glCallList _gl-uint ->) (define-foreign glCallLists _gl-sizei _gl-enum _gl-voidv ->) (define-foreign glListBase _gl-uint ->) (define-foreign glGenLists _gl-sizei -> _gl-uint) (define-foreign glIsList _gl-uint -> _gl-boolean) (define-foreign glDeleteLists _gl-uint _gl-sizei ->) ;; 5.5 (define-foreign glFlush ->) (define-foreign glFinish ->) ;; 5.6 (define-foreign glHint _gl-enum _gl-enum ->) ;; 6.1.1 (define-foreign glGetBooleanv _gl-enum [n : _?] [r : (_cvector o _gl-boolean n)] -> _void -> r) (define-foreign glGetIntegerv _gl-enum [n : _?] [r : (_cvector o _gl-int n)] -> _void -> r) (define-foreign glGetFloatv _gl-enum [n : _?] [r : (_cvector o _gl-float n)] -> _void -> r) (define-foreign glGetDoublev _gl-enum [n : _?] [r : (_cvector o _gl-double n)] -> _void -> r) (define-foreign glIsEnabled _gl-enum -> _gl-boolean) ;; 6.1.3 (define-foreign glGetClipPlane _gl-enum [r : (_cvector o _gl-double 4)] -> _void -> r) (define-foreign-tparm glGetLight (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetMaterial (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetTexEnv (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetTexGen (iv fv dv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetTexParameter (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetTexLevelParameter (iv fv) _gl-enum _gl-int _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetPixelMap (uiv usv fv) _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetMap (iv fv dv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetBufferParameter (iv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) ;; 6.1.4 (define-foreign glGetTexImage _gl-enum _gl-int _gl-enum _gl-enum _gl-voidv ->) (define-foreign glGetCompressedTexImage _gl-enum _gl-int _gl-voidv ->) (define-foreign glIsTexture _gl-uint -> _gl-boolean) ;; 6.1.5 (define-foreign glGetPolygonStipple _gl-voidv ->) ;; 6.1.7 (define-foreign glGetColorTable _gl-enum _gl-enum _gl-enum _gl-voidv ->) ;; 6.1.8 (define-foreign glGetConvolutionFilter _gl-enum _gl-enum _gl-enum _gl-voidv ->) (define-foreign glGetSeparableFilter _gl-enum _gl-enum _gl-enum _gl-voidv _gl-voidv _gl-voidv ->) (define-foreign-tparm glGetConvolutionParameter (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) ;; 6.1.9 (define-foreign glGetHistogram _gl-enum _gl-boolean _gl-enum _gl-enum _gl-voidv ->) (define-foreign glResetHistogram _gl-enum ->) (define-foreign-tparm glGetHistogramParameter (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) ;; 6.1.10 (define-foreign glGetMinmax _gl-enum _gl-boolean _gl-enum _gl-enum _gl-voidv ->) (define-foreign glResetMinmax _gl-enum ->) (define-foreign-tparm glGetMinmaxParameter (iv fv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) ;; 6.1.11 #| (define-foreign glGetPointerv _gl-enum _gl-voidvv ->) |# (define-foreign glGetString _gl-enum -> _string) ;; 6.1.12 (define-foreign glIsQuery _gl-uint -> _gl-boolean) (define-foreign-tparm glGetQuery (iv) _gl-enum _gl-enum [n : _?] [r : (T n)] -> _void -> r) (define-foreign-tparm glGetQueryObject (iv uiv) _gl-uint _gl-enum [n : _?] [r : (T n)] -> _void -> r) ;; 6.1.13 (define-foreign glIsBuffer _gl-uint -> _gl-boolean) #| (define-foreign glGetBufferSubData _gl-enum _gl-intptr _gl-sizeiptr _gl-voidv ->) (define-foreign glGetBufferPointerv _gl-enum _gl-enum _gl-voidvv ->) |# ;; 6.1.14 (define-foreign glPushAttrib _gl-bitfield ->) (define-foreign glPushClientAttrib _gl-bitfield ->) (define-foreign glPopAttrib ->) (define-foreign glPopClientAttrib ->) (define-syntax define-foreignu (syntax-rules () [(_ args ...) (define-foreign-lib glu-lib args ...)])) ;; 2 (define-foreignu gluGetString _gl-enum -> _string) (define-foreignu gluCheckExtension _string _string -> _gl-boolean) ;; 3.1 (define-foreignu gluScaleImage _gl-enum _gl-sizei _gl-sizei _gl-enum _gl-voidv _gl-sizei _gl-sizei _gl-enum _gl-voidv ->) ;; 3.2 (define-foreignu gluBuild1DMipmaps _gl-enum _gl-int _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreignu gluBuild2DMipmaps _gl-enum _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreignu gluBuild3DMipmaps _gl-enum _gl-int _gl-sizei _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-voidv ->) (define-foreignu gluBuild1DMipmapLevels _gl-enum _gl-int _gl-sizei _gl-enum _gl-enum _gl-int _gl-int _gl-int _gl-voidv ->) (define-foreignu gluBuild2DMipmapLevels _gl-enum _gl-int _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-int _gl-int _gl-int _gl-voidv ->) (define-foreignu gluBuild3DMipmapLevels _gl-enum _gl-int _gl-sizei _gl-sizei _gl-sizei _gl-enum _gl-enum _gl-int _gl-int _gl-int _gl-voidv ->) ;; 4.1 (define-foreignu gluOrtho2D _gl-double _gl-double _gl-double _gl-double ->) (define-foreignu gluPerspective _gl-double _gl-double _gl-double _gl-double ->) (define-foreignu gluLookAt _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double _gl-double ->) (define-foreignu gluPickMatrix _gl-double _gl-double _gl-double _gl-double _gl-intv ->) ;; 4.2 (define-foreignu gluProject _gl-double _gl-double _gl-double _gl-doublev _gl-doublev _gl-intv [r1 : (_ptr o _gl-double)] [r2 : (_ptr o _gl-double)] [r3 : (_ptr o _gl-double)] -> _void -> (gl-double-vector r1 r2 r3)) (define-foreignu gluUnProject _gl-double _gl-double _gl-double _gl-doublev _gl-doublev _gl-intv [r1 : (_ptr o _gl-double)] [r2 : (_ptr o _gl-double)] [r3 : (_ptr o _gl-double)] -> _void -> (gl-double-vector r1 r2 r3)) (define-foreignu gluUnProject4 _gl-double _gl-double _gl-double _gl-double _gl-doublev _gl-doublev _gl-intv _gl-clampd _gl-clampd [r1 : (_ptr o _gl-double)] [r2 : (_ptr o _gl-double)] [r3 : (_ptr o _gl-double)] [r4 : (_ptr o _gl-double)] -> _void -> (gl-double-vector r1 r2 r3 r4)) ;; 5.1 #| (define-foreignu gluNewTess -> _glu-tessalator*) (define-foreignu gluDeleteTess _glu-tessalator* ->) |# ;; 5.2 #| (define-foreignu gluTessBeginPolygon _glu-tessalator* _gl-voidv ->) (define-foreignu gluTessBeginContour _glu-tessalator* ->) (define-foreignu gluTessVertex _glu-tessalator* _gl-doublev _gl-voidv ->) (define-foreignu gluTessEndContour _glu-tessalator* ->) (define-foreignu gluTessEndPolygon _glu-tessalator* ->) |# ;; 5.3 #| (define-foreignu gluTessCallback _glu-tessalator _gl-enum ??? ->) |# ;; 5.4 #| (define-foreignu gluTessProperty _glu-tessalator* _gl-enum _gl-double ->) (define-foreignu gluGetTessProperty _glu-tessalator* _gl-enum _gl-doublev ->) (define-foreignu gluTessNormal _glu-tessalator* _gl-double _gl-double _gl-double ->) |# ;; 5.7 #| (define-foreignu gluBeginPolygon _glu-tessalator* ->) (define-foreignu gluNextContour _glu-tessalator* _gl-enum ->) (define-foreignu gluEndPolygon _glu-tessalator* ->) |# ;; 6.1 (define _glu-quadric (_cpointer 'quadric _pointer #f (lambda (q*) (register-finalizer q* gluDeleteQuadric) q*))) (define-foreignu gluNewQuadric -> _glu-quadric) ;; Don't use define-foreign, because this shouldn't be provided (define gluDeleteQuadric (with-handlers ([exn:fail:filesystem? (lambda (ex) (lambda x (error 'gluDeleteQuadric "unavailable on this system")))]) (get-ffi-obj 'gluDeleteQuadric glu-lib (_fun* _glu-quadric -> _void)))) ;; 6.2 ;;(define-foreignu gluQuadricCallback ;; _glu-quadric [_gl-enum = GLU_ERROR] (_fun* _gl-enum -> _void) ->) ;; 6.3 (define-foreignu gluQuadricNormals _glu-quadric _gl-enum ->) (define-foreignu gluQuadricTexture _glu-quadric _gl-boolean ->) (define-foreignu gluQuadricOrientation _glu-quadric _gl-enum ->) (define-foreignu gluQuadricDrawStyle _glu-quadric _gl-enum ->) ;; 6.4 (define-foreignu gluSphere _glu-quadric _gl-double _gl-int _gl-int ->) (define-foreignu gluCylinder _glu-quadric _gl-double _gl-double _gl-double _gl-int _gl-int ->) (define-foreignu gluDisk _glu-quadric _gl-double _gl-double _gl-int _gl-int ->) (define-foreignu gluPartialDisk _glu-quadric _gl-double _gl-double _gl-int _gl-int _gl-double _gl-double ->) ;; 7.1 (define _glu-nurbs (_cpointer 'nurbs _pointer #f (lambda (q*) (register-finalizer q* gluDeleteNurbsRenderer) q*))) (define-foreignu gluNewNurbsRenderer -> _glu-nurbs) (define-foreignu gluDeleteNurbsRenderer _glu-nurbs ->) ;; 7.2 #| (define-foreignu gluNurbsCallback _glu-nurbs* _gl-enum ??? ->) (define-foreignu gluNurbsCallbackData _glu-nurbs* _gl-voidv ->) |# ;; 7.3 (define-foreignu gluBeginCurve _glu-nurbs ->) (define-foreignu gluNurbsCurve _glu-nurbs _gl-int _gl-floatv _gl-int _gl-floatv _gl-int _gl-enum ->) (define-foreignu gluEndCurve _glu-nurbs ->) ;; 7.4 (define-foreignu gluBeginSurface _glu-nurbs ->) (define-foreignu gluNurbsSurface _glu-nurbs _gl-int _gl-floatv _gl-int _gl-floatv _gl-int _gl-int _gl-floatv _gl-int _gl-int _gl-enum ->) (define-foreignu gluEndSurface _glu-nurbs ->) ;; 7.5 #| (define-foreignu gluBeginTrim _glu-nurbs* ->) (define-foreignu gluPwlCurve _glu-nurbs* _gl-int _gl-floatv _gl-int _gl-enum ->) (define-foreignu gluEndTrim _glu-nurbs* ->) |# ;; 7.6 (define-foreignu gluNurbsProperty _glu-nurbs _gl-enum _gl-float ->) #| (define-foreignu gluLoadSamplingMatrix _glu-nurbs* _gl-floatv _gl-floatv _gl-intv ->) (define-foreignu gluGetNurbsProperty _glu-nurbs* _gl-enum _gl-floatv ->) |# ;; 8 (define-foreignu gluErrorString _gl-enum -> _string) (define-syntax define-enum (syntax-rules () [(_ d v) (begin (provide d) (define d v))] [(_ _ d v) (define-enum d v)])) ;; Enumeration constants for version 1.0 and 1.1 ;; These values are all taken from MESA's gl.h. ;; Although the standard doesn't define these, they seem to be used on all ;; platforms. (define-enum GL_FALSE #x0) (define-enum GL_TRUE #x1) (define-enum GL_BYTE #x1400) (define-enum GL_UNSIGNED_BYTE #x1401) (define-enum GL_SHORT #x1402) (define-enum GL_UNSIGNED_SHORT #x1403) (define-enum GL_INT #x1404) (define-enum GL_UNSIGNED_INT #x1405) (define-enum GL_FLOAT #x1406) (define-enum GL_DOUBLE #x140A) (define-enum GL_2_BYTES #x1407) (define-enum GL_3_BYTES #x1408) (define-enum GL_4_BYTES #x1409) (define-enum GL_POINTS #x0000) (define-enum GL_LINES #x0001) (define-enum GL_LINE_LOOP #x0002) (define-enum GL_LINE_STRIP #x0003) (define-enum GL_TRIANGLES #x0004) (define-enum GL_TRIANGLE_STRIP #x0005) (define-enum GL_TRIANGLE_FAN #x0006) (define-enum GL_QUADS #x0007) (define-enum GL_QUAD_STRIP #x0008) (define-enum GL_POLYGON #x0009) (define-enum GL_VERTEX_ARRAY #x8074) (define-enum GL_NORMAL_ARRAY #x8075) (define-enum GL_COLOR_ARRAY #x8076) (define-enum GL_INDEX_ARRAY #x8077) (define-enum GL_TEXTURE_COORD_ARRAY #x8078) (define-enum GL_EDGE_FLAG_ARRAY #x8079) (define-enum GL_VERTEX_ARRAY_SIZE #x807A) (define-enum GL_VERTEX_ARRAY_TYPE #x807B) (define-enum GL_VERTEX_ARRAY_STRIDE #x807C) (define-enum GL_NORMAL_ARRAY_TYPE #x807E) (define-enum GL_NORMAL_ARRAY_STRIDE #x807F) (define-enum GL_COLOR_ARRAY_SIZE #x8081) (define-enum GL_COLOR_ARRAY_TYPE #x8082) (define-enum GL_COLOR_ARRAY_STRIDE #x8083) (define-enum GL_INDEX_ARRAY_TYPE #x8085) (define-enum GL_INDEX_ARRAY_STRIDE #x8086) (define-enum GL_TEXTURE_COORD_ARRAY_SIZE #x8088) (define-enum GL_TEXTURE_COORD_ARRAY_TYPE #x8089) (define-enum GL_TEXTURE_COORD_ARRAY_STRIDE #x808A) (define-enum GL_EDGE_FLAG_ARRAY_STRIDE #x808C) (define-enum GL_VERTEX_ARRAY_POINTER #x808E) (define-enum GL_NORMAL_ARRAY_POINTER #x808F) (define-enum GL_COLOR_ARRAY_POINTER #x8090) (define-enum GL_INDEX_ARRAY_POINTER #x8091) (define-enum GL_TEXTURE_COORD_ARRAY_POINTER #x8092) (define-enum GL_EDGE_FLAG_ARRAY_POINTER #x8093) (define-enum GL_V2F #x2A20) (define-enum GL_V3F #x2A21) (define-enum GL_C4UB_V2F #x2A22) (define-enum GL_C4UB_V3F #x2A23) (define-enum GL_C3F_V3F #x2A24) (define-enum GL_N3F_V3F #x2A25) (define-enum GL_C4F_N3F_V3F #x2A26) (define-enum GL_T2F_V3F #x2A27) (define-enum GL_T4F_V4F #x2A28) (define-enum GL_T2F_C4UB_V3F #x2A29) (define-enum GL_T2F_C3F_V3F #x2A2A) (define-enum GL_T2F_N3F_V3F #x2A2B) (define-enum GL_T2F_C4F_N3F_V3F #x2A2C) (define-enum GL_T4F_C4F_N3F_V4F #x2A2D) (define-enum GL_MATRIX_MODE #x0BA0) (define-enum GL_MODELVIEW #x1700) (define-enum GL_PROJECTION #x1701) (define-enum GL_TEXTURE #x1702) (define-enum GL_POINT_SMOOTH #x0B10) (define-enum GL_POINT_SIZE #x0B11) (define-enum GL_POINT_SIZE_GRANULARITY #x0B13) (define-enum GL_POINT_SIZE_RANGE #x0B12) (define-enum GL_LINE_SMOOTH #x0B20) (define-enum GL_LINE_STIPPLE #x0B24) (define-enum GL_LINE_STIPPLE_PATTERN #x0B25) (define-enum GL_LINE_STIPPLE_REPEAT #x0B26) (define-enum GL_LINE_WIDTH #x0B21) (define-enum GL_LINE_WIDTH_GRANULARITY #x0B23) (define-enum GL_LINE_WIDTH_RANGE #x0B22) (define-enum GL_POINT #x1B00) (define-enum GL_LINE #x1B01) (define-enum GL_FILL #x1B02) (define-enum GL_CW #x0900) (define-enum GL_CCW #x0901) (define-enum GL_FRONT #x0404) (define-enum GL_BACK #x0405) (define-enum GL_POLYGON_MODE #x0B40) (define-enum GL_POLYGON_SMOOTH #x0B41) (define-enum GL_POLYGON_STIPPLE #x0B42) (define-enum GL_EDGE_FLAG #x0B43) (define-enum GL_CULL_FACE #x0B44) (define-enum GL_CULL_FACE_MODE #x0B45) (define-enum GL_FRONT_FACE #x0B46) (define-enum GL_POLYGON_OFFSET_FACTOR #x8038) (define-enum GL_POLYGON_OFFSET_UNITS #x2A00) (define-enum GL_POLYGON_OFFSET_POINT #x2A01) (define-enum GL_POLYGON_OFFSET_LINE #x2A02) (define-enum GL_POLYGON_OFFSET_FILL #x8037) (define-enum GL_COMPILE #x1300) (define-enum GL_COMPILE_AND_EXECUTE #x1301) (define-enum GL_LIST_BASE #x0B32) (define-enum GL_LIST_INDEX #x0B33) (define-enum GL_LIST_MODE #x0B30) (define-enum GL_NEVER #x0200) (define-enum GL_LESS #x0201) (define-enum GL_EQUAL #x0202) (define-enum GL_LEQUAL #x0203) (define-enum GL_GREATER #x0204) (define-enum GL_NOTEQUAL #x0205) (define-enum GL_GEQUAL #x0206) (define-enum GL_ALWAYS #x0207) (define-enum GL_DEPTH_TEST #x0B71) (define-enum GL_DEPTH_BITS #x0D56) (define-enum GL_DEPTH_CLEAR_VALUE #x0B73) (define-enum GL_DEPTH_FUNC #x0B74) (define-enum GL_DEPTH_RANGE #x0B70) (define-enum GL_DEPTH_WRITEMASK #x0B72) (define-enum GL_DEPTH_COMPONENT #x1902) (define-enum GL_LIGHTING #x0B50) (define-enum GL_LIGHT0 #x4000) (define-enum GL_LIGHT1 #x4001) (define-enum GL_LIGHT2 #x4002) (define-enum GL_LIGHT3 #x4003) (define-enum GL_LIGHT4 #x4004) (define-enum GL_LIGHT5 #x4005) (define-enum GL_LIGHT6 #x4006) (define-enum GL_LIGHT7 #x4007) (define-enum GL_SPOT_EXPONENT #x1205) (define-enum GL_SPOT_CUTOFF #x1206) (define-enum GL_CONSTANT_ATTENUATION #x1207) (define-enum GL_LINEAR_ATTENUATION #x1208) (define-enum GL_QUADRATIC_ATTENUATION #x1209) (define-enum GL_AMBIENT #x1200) (define-enum GL_DIFFUSE #x1201) (define-enum GL_SPECULAR #x1202) (define-enum GL_SHININESS #x1601) (define-enum GL_EMISSION #x1600) (define-enum GL_POSITION #x1203) (define-enum GL_SPOT_DIRECTION #x1204) (define-enum GL_AMBIENT_AND_DIFFUSE #x1602) (define-enum GL_COLOR_INDEXES #x1603) (define-enum GL_LIGHT_MODEL_TWO_SIDE #x0B52) (define-enum GL_LIGHT_MODEL_LOCAL_VIEWER #x0B51) (define-enum GL_LIGHT_MODEL_AMBIENT #x0B53) (define-enum GL_FRONT_AND_BACK #x0408) (define-enum GL_SHADE_MODEL #x0B54) (define-enum GL_FLAT #x1D00) (define-enum GL_SMOOTH #x1D01) (define-enum GL_COLOR_MATERIAL #x0B57) (define-enum GL_COLOR_MATERIAL_FACE #x0B55) (define-enum GL_COLOR_MATERIAL_PARAMETER #x0B56) (define-enum GL_NORMALIZE #x0BA1) (define-enum GL_CLIP_PLANE0 #x3000) (define-enum GL_CLIP_PLANE1 #x3001) (define-enum GL_CLIP_PLANE2 #x3002) (define-enum GL_CLIP_PLANE3 #x3003) (define-enum GL_CLIP_PLANE4 #x3004) (define-enum GL_CLIP_PLANE5 #x3005) (define-enum GL_ACCUM_RED_BITS #x0D58) (define-enum GL_ACCUM_GREEN_BITS #x0D59) (define-enum GL_ACCUM_BLUE_BITS #x0D5A) (define-enum GL_ACCUM_ALPHA_BITS #x0D5B) (define-enum GL_ACCUM_CLEAR_VALUE #x0B80) (define-enum GL_ACCUM #x0100) (define-enum GL_ADD #x0104) (define-enum GL_LOAD #x0101) (define-enum GL_MULT #x0103) (define-enum GL_RETURN #x0102) (define-enum GL_ALPHA_TEST #x0BC0) (define-enum GL_ALPHA_TEST_REF #x0BC2) (define-enum GL_ALPHA_TEST_FUNC #x0BC1) (define-enum GL_BLEND #x0BE2) (define-enum GL_BLEND_SRC #x0BE1) (define-enum GL_BLEND_DST #x0BE0) (define-enum GL_ZERO #x0) (define-enum GL_ONE #x1) (define-enum GL_SRC_COLOR #x0300) (define-enum GL_ONE_MINUS_SRC_COLOR #x0301) (define-enum GL_SRC_ALPHA #x0302) (define-enum GL_ONE_MINUS_SRC_ALPHA #x0303) (define-enum GL_DST_ALPHA #x0304) (define-enum GL_ONE_MINUS_DST_ALPHA #x0305) (define-enum GL_DST_COLOR #x0306) (define-enum GL_ONE_MINUS_DST_COLOR #x0307) (define-enum GL_SRC_ALPHA_SATURATE #x0308) (define-enum GL_FEEDBACK #x1C01) (define-enum GL_RENDER #x1C00) (define-enum GL_SELECT #x1C02) (define-enum GL_2D #x0600) (define-enum GL_3D #x0601) (define-enum GL_3D_COLOR #x0602) (define-enum GL_3D_COLOR_TEXTURE #x0603) (define-enum GL_4D_COLOR_TEXTURE #x0604) (define-enum GL_POINT_TOKEN #x0701) (define-enum GL_LINE_TOKEN #x0702) (define-enum GL_LINE_RESET_TOKEN #x0707) (define-enum GL_POLYGON_TOKEN #x0703) (define-enum GL_BITMAP_TOKEN #x0704) (define-enum GL_DRAW_PIXEL_TOKEN #x0705) (define-enum GL_COPY_PIXEL_TOKEN #x0706) (define-enum GL_PASS_THROUGH_TOKEN #x0700) (define-enum GL_FEEDBACK_BUFFER_POINTER #x0DF0) (define-enum GL_FEEDBACK_BUFFER_SIZE #x0DF1) (define-enum GL_FEEDBACK_BUFFER_TYPE #x0DF2) (define-enum GL_SELECTION_BUFFER_POINTER #x0DF3) (define-enum GL_SELECTION_BUFFER_SIZE #x0DF4) (define-enum GL_FOG #x0B60) (define-enum GL_FOG_MODE #x0B65) (define-enum GL_FOG_DENSITY #x0B62) (define-enum GL_FOG_COLOR #x0B66) (define-enum GL_FOG_INDEX #x0B61) (define-enum GL_FOG_START #x0B63) (define-enum GL_FOG_END #x0B64) (define-enum GL_LINEAR #x2601) (define-enum GL_EXP #x0800) (define-enum GL_EXP2 #x0801) (define-enum GL_LOGIC_OP #x0BF1) (define-enum GL_INDEX_LOGIC_OP #x0BF1) (define-enum GL_COLOR_LOGIC_OP #x0BF2) (define-enum GL_LOGIC_OP_MODE #x0BF0) (define-enum GL_CLEAR #x1500) (define-enum GL_SET #x150F) (define-enum GL_COPY #x1503) (define-enum GL_COPY_INVERTED #x150C) (define-enum GL_NOOP #x1505) (define-enum GL_INVERT #x150A) (define-enum GL_AND #x1501) (define-enum GL_NAND #x150E) (define-enum GL_OR #x1507) (define-enum GL_NOR #x1508) (define-enum GL_XOR #x1506) (define-enum GL_EQUIV #x1509) (define-enum GL_AND_REVERSE #x1502) (define-enum GL_AND_INVERTED #x1504) (define-enum GL_OR_REVERSE #x150B) (define-enum GL_OR_INVERTED #x150D) (define-enum GL_STENCIL_TEST #x0B90) (define-enum GL_STENCIL_WRITEMASK #x0B98) (define-enum GL_STENCIL_BITS #x0D57) (define-enum GL_STENCIL_FUNC #x0B92) (define-enum GL_STENCIL_VALUE_MASK #x0B93) (define-enum GL_STENCIL_REF #x0B97) (define-enum GL_STENCIL_FAIL #x0B94) (define-enum GL_STENCIL_PASS_DEPTH_PASS #x0B96) (define-enum GL_STENCIL_PASS_DEPTH_FAIL #x0B95) (define-enum GL_STENCIL_CLEAR_VALUE #x0B91) (define-enum GL_STENCIL_INDEX #x1901) (define-enum GL_KEEP #x1E00) (define-enum GL_REPLACE #x1E01) (define-enum GL_INCR #x1E02) (define-enum GL_DECR #x1E03) (define-enum GL_NONE #x0) (define-enum GL_LEFT #x0406) (define-enum GL_RIGHT #x0407) (define-enum GL_FRONT_LEFT #x0400) (define-enum GL_FRONT_RIGHT #x0401) (define-enum GL_BACK_LEFT #x0402) (define-enum GL_BACK_RIGHT #x0403) (define-enum GL_AUX0 #x0409) (define-enum GL_AUX1 #x040A) (define-enum GL_AUX2 #x040B) (define-enum GL_AUX3 #x040C) (define-enum GL_COLOR_INDEX #x1900) (define-enum GL_RED #x1903) (define-enum GL_GREEN #x1904) (define-enum GL_BLUE #x1905) (define-enum GL_ALPHA #x1906) (define-enum GL_LUMINANCE #x1909) (define-enum GL_LUMINANCE_ALPHA #x190A) (define-enum GL_ALPHA_BITS #x0D55) (define-enum GL_RED_BITS #x0D52) (define-enum GL_GREEN_BITS #x0D53) (define-enum GL_BLUE_BITS #x0D54) (define-enum GL_INDEX_BITS #x0D51) (define-enum GL_SUBPIXEL_BITS #x0D50) (define-enum GL_AUX_BUFFERS #x0C00) (define-enum GL_READ_BUFFER #x0C02) (define-enum GL_DRAW_BUFFER #x0C01) (define-enum GL_DOUBLEBUFFER #x0C32) (define-enum GL_STEREO #x0C33) (define-enum GL_BITMAP #x1A00) (define-enum GL_COLOR #x1800) (define-enum GL_DEPTH #x1801) (define-enum GL_STENCIL #x1802) (define-enum GL_DITHER #x0BD0) (define-enum GL_RGB #x1907) (define-enum GL_RGBA #x1908) (define-enum GL_MAX_LIST_NESTING #x0B31) (define-enum GL_MAX_ATTRIB_STACK_DEPTH #x0D35) (define-enum GL_MAX_MODELVIEW_STACK_DEPTH #x0D36) (define-enum GL_MAX_NAME_STACK_DEPTH #x0D37) (define-enum GL_MAX_PROJECTION_STACK_DEPTH #x0D38) (define-enum GL_MAX_TEXTURE_STACK_DEPTH #x0D39) (define-enum GL_MAX_EVAL_ORDER #x0D30) (define-enum GL_MAX_LIGHTS #x0D31) (define-enum GL_MAX_CLIP_PLANES #x0D32) (define-enum GL_MAX_TEXTURE_SIZE #x0D33) (define-enum GL_MAX_PIXEL_MAP_TABLE #x0D34) (define-enum GL_MAX_VIEWPORT_DIMS #x0D3A) (define-enum GL_MAX_CLIENT_ATTRIB_STACK_DEPTH #x0D3B) (define-enum GL_ATTRIB_STACK_DEPTH #x0BB0) (define-enum GL_CLIENT_ATTRIB_STACK_DEPTH #x0BB1) (define-enum GL_COLOR_CLEAR_VALUE #x0C22) (define-enum GL_COLOR_WRITEMASK #x0C23) (define-enum GL_CURRENT_INDEX #x0B01) (define-enum GL_CURRENT_COLOR #x0B00) (define-enum GL_CURRENT_NORMAL #x0B02) (define-enum GL_CURRENT_RASTER_COLOR #x0B04) (define-enum GL_CURRENT_RASTER_DISTANCE #x0B09) (define-enum GL_CURRENT_RASTER_INDEX #x0B05) (define-enum GL_CURRENT_RASTER_POSITION #x0B07) (define-enum GL_CURRENT_RASTER_TEXTURE_COORDS #x0B06) (define-enum GL_CURRENT_RASTER_POSITION_VALID #x0B08) (define-enum GL_CURRENT_TEXTURE_COORDS #x0B03) (define-enum GL_INDEX_CLEAR_VALUE #x0C20) (define-enum GL_INDEX_MODE #x0C30) (define-enum GL_INDEX_WRITEMASK #x0C21) (define-enum GL_MODELVIEW_MATRIX #x0BA6) (define-enum GL_MODELVIEW_STACK_DEPTH #x0BA3) (define-enum GL_NAME_STACK_DEPTH #x0D70) (define-enum GL_PROJECTION_MATRIX #x0BA7) (define-enum GL_PROJECTION_STACK_DEPTH #x0BA4) (define-enum GL_RENDER_MODE #x0C40) (define-enum GL_RGBA_MODE #x0C31) (define-enum GL_TEXTURE_MATRIX #x0BA8) (define-enum GL_TEXTURE_STACK_DEPTH #x0BA5) (define-enum GL_VIEWPORT #x0BA2) (define-enum GL_AUTO_NORMAL #x0D80) (define-enum GL_MAP1_COLOR_4 #x0D90) (define-enum GL_MAP1_GRID_DOMAIN #x0DD0) (define-enum GL_MAP1_GRID_SEGMENTS #x0DD1) (define-enum GL_MAP1_INDEX #x0D91) (define-enum GL_MAP1_NORMAL #x0D92) (define-enum GL_MAP1_TEXTURE_COORD_1 #x0D93) (define-enum GL_MAP1_TEXTURE_COORD_2 #x0D94) (define-enum GL_MAP1_TEXTURE_COORD_3 #x0D95) (define-enum GL_MAP1_TEXTURE_COORD_4 #x0D96) (define-enum GL_MAP1_VERTEX_3 #x0D97) (define-enum GL_MAP1_VERTEX_4 #x0D98) (define-enum GL_MAP2_COLOR_4 #x0DB0) (define-enum GL_MAP2_GRID_DOMAIN #x0DD2) (define-enum GL_MAP2_GRID_SEGMENTS #x0DD3) (define-enum GL_MAP2_INDEX #x0DB1) (define-enum GL_MAP2_NORMAL #x0DB2) (define-enum GL_MAP2_TEXTURE_COORD_1 #x0DB3) (define-enum GL_MAP2_TEXTURE_COORD_2 #x0DB4) (define-enum GL_MAP2_TEXTURE_COORD_3 #x0DB5) (define-enum GL_MAP2_TEXTURE_COORD_4 #x0DB6) (define-enum GL_MAP2_VERTEX_3 #x0DB7) (define-enum GL_MAP2_VERTEX_4 #x0DB8) (define-enum GL_COEFF #x0A00) (define-enum GL_DOMAIN #x0A02) (define-enum GL_ORDER #x0A01) (define-enum GL_FOG_HINT #x0C54) (define-enum GL_LINE_SMOOTH_HINT #x0C52) (define-enum GL_PERSPECTIVE_CORRECTION_HINT #x0C50) (define-enum GL_POINT_SMOOTH_HINT #x0C51) (define-enum GL_POLYGON_SMOOTH_HINT #x0C53) (define-enum GL_DONT_CARE #x1100) (define-enum GL_FASTEST #x1101) (define-enum GL_NICEST #x1102) (define-enum GL_SCISSOR_TEST #x0C11) (define-enum GL_SCISSOR_BOX #x0C10) (define-enum GL_MAP_COLOR #x0D10) (define-enum GL_MAP_STENCIL #x0D11) (define-enum GL_INDEX_SHIFT #x0D12) (define-enum GL_INDEX_OFFSET #x0D13) (define-enum GL_RED_SCALE #x0D14) (define-enum GL_RED_BIAS #x0D15) (define-enum GL_GREEN_SCALE #x0D18) (define-enum GL_GREEN_BIAS #x0D19) (define-enum GL_BLUE_SCALE #x0D1A) (define-enum GL_BLUE_BIAS #x0D1B) (define-enum GL_ALPHA_SCALE #x0D1C) (define-enum GL_ALPHA_BIAS #x0D1D) (define-enum GL_DEPTH_SCALE #x0D1E) (define-enum GL_DEPTH_BIAS #x0D1F) (define-enum GL_PIXEL_MAP_S_TO_S_SIZE #x0CB1) (define-enum GL_PIXEL_MAP_I_TO_I_SIZE #x0CB0) (define-enum GL_PIXEL_MAP_I_TO_R_SIZE #x0CB2) (define-enum GL_PIXEL_MAP_I_TO_G_SIZE #x0CB3) (define-enum GL_PIXEL_MAP_I_TO_B_SIZE #x0CB4) (define-enum GL_PIXEL_MAP_I_TO_A_SIZE #x0CB5) (define-enum GL_PIXEL_MAP_R_TO_R_SIZE #x0CB6) (define-enum GL_PIXEL_MAP_G_TO_G_SIZE #x0CB7) (define-enum GL_PIXEL_MAP_B_TO_B_SIZE #x0CB8) (define-enum GL_PIXEL_MAP_A_TO_A_SIZE #x0CB9) (define-enum GL_PIXEL_MAP_S_TO_S #x0C71) (define-enum GL_PIXEL_MAP_I_TO_I #x0C70) (define-enum GL_PIXEL_MAP_I_TO_R #x0C72) (define-enum GL_PIXEL_MAP_I_TO_G #x0C73) (define-enum GL_PIXEL_MAP_I_TO_B #x0C74) (define-enum GL_PIXEL_MAP_I_TO_A #x0C75) (define-enum GL_PIXEL_MAP_R_TO_R #x0C76) (define-enum GL_PIXEL_MAP_G_TO_G #x0C77) (define-enum GL_PIXEL_MAP_B_TO_B #x0C78) (define-enum GL_PIXEL_MAP_A_TO_A #x0C79) (define-enum GL_PACK_ALIGNMENT #x0D05) (define-enum GL_PACK_LSB_FIRST #x0D01) (define-enum GL_PACK_ROW_LENGTH #x0D02) (define-enum GL_PACK_SKIP_PIXELS #x0D04) (define-enum GL_PACK_SKIP_ROWS #x0D03) (define-enum GL_PACK_SWAP_BYTES #x0D00) (define-enum GL_UNPACK_ALIGNMENT #x0CF5) (define-enum GL_UNPACK_LSB_FIRST #x0CF1) (define-enum GL_UNPACK_ROW_LENGTH #x0CF2) (define-enum GL_UNPACK_SKIP_PIXELS #x0CF4) (define-enum GL_UNPACK_SKIP_ROWS #x0CF3) (define-enum GL_UNPACK_SWAP_BYTES #x0CF0) (define-enum GL_ZOOM_X #x0D16) (define-enum GL_ZOOM_Y #x0D17) (define-enum GL_TEXTURE_ENV #x2300) (define-enum GL_TEXTURE_ENV_MODE #x2200) (define-enum GL_TEXTURE_1D #x0DE0) (define-enum GL_TEXTURE_2D #x0DE1) (define-enum GL_TEXTURE_WRAP_S #x2802) (define-enum GL_TEXTURE_WRAP_T #x2803) (define-enum GL_TEXTURE_MAG_FILTER #x2800) (define-enum GL_TEXTURE_MIN_FILTER #x2801) (define-enum GL_TEXTURE_ENV_COLOR #x2201) (define-enum GL_TEXTURE_GEN_S #x0C60) (define-enum GL_TEXTURE_GEN_T #x0C61) (define-enum GL_TEXTURE_GEN_MODE #x2500) (define-enum GL_TEXTURE_BORDER_COLOR #x1004) (define-enum GL_TEXTURE_WIDTH #x1000) (define-enum GL_TEXTURE_HEIGHT #x1001) (define-enum GL_TEXTURE_BORDER #x1005) (define-enum GL_TEXTURE_COMPONENTS #x1003) (define-enum GL_TEXTURE_RED_SIZE #x805C) (define-enum GL_TEXTURE_GREEN_SIZE #x805D) (define-enum GL_TEXTURE_BLUE_SIZE #x805E) (define-enum GL_TEXTURE_ALPHA_SIZE #x805F) (define-enum GL_TEXTURE_LUMINANCE_SIZE #x8060) (define-enum GL_TEXTURE_INTENSITY_SIZE #x8061) (define-enum GL_NEAREST_MIPMAP_NEAREST #x2700) (define-enum GL_NEAREST_MIPMAP_LINEAR #x2702) (define-enum GL_LINEAR_MIPMAP_NEAREST #x2701) (define-enum GL_LINEAR_MIPMAP_LINEAR #x2703) (define-enum GL_OBJECT_LINEAR #x2401) (define-enum GL_OBJECT_PLANE #x2501) (define-enum GL_EYE_LINEAR #x2400) (define-enum GL_EYE_PLANE #x2502) (define-enum GL_SPHERE_MAP #x2402) (define-enum GL_DECAL #x2101) (define-enum GL_MODULATE #x2100) (define-enum GL_NEAREST #x2600) (define-enum GL_REPEAT #x2901) (define-enum GL_CLAMP #x2900) (define-enum GL_S #x2000) (define-enum GL_T #x2001) (define-enum GL_R #x2002) (define-enum GL_Q #x2003) (define-enum GL_TEXTURE_GEN_R #x0C62) (define-enum GL_TEXTURE_GEN_Q #x0C63) (define-enum GL_VENDOR #x1F00) (define-enum GL_RENDERER #x1F01) (define-enum GL_VERSION #x1F02) (define-enum GL_EXTENSIONS #x1F03) (define-enum GL_NO_ERROR #x0) (define-enum GL_INVALID_VALUE #x0501) (define-enum GL_INVALID_ENUM #x0500) (define-enum GL_INVALID_OPERATION #x0502) (define-enum GL_STACK_OVERFLOW #x0503) (define-enum GL_STACK_UNDERFLOW #x0504) (define-enum GL_OUT_OF_MEMORY #x0505) (define-enum GL_CURRENT_BIT #x00000001) (define-enum GL_POINT_BIT #x00000002) (define-enum GL_LINE_BIT #x00000004) (define-enum GL_POLYGON_BIT #x00000008) (define-enum GL_POLYGON_STIPPLE_BIT #x00000010) (define-enum GL_PIXEL_MODE_BIT #x00000020) (define-enum GL_LIGHTING_BIT #x00000040) (define-enum GL_FOG_BIT #x00000080) (define-enum GL_DEPTH_BUFFER_BIT #x00000100) (define-enum GL_ACCUM_BUFFER_BIT #x00000200) (define-enum GL_STENCIL_BUFFER_BIT #x00000400) (define-enum GL_VIEWPORT_BIT #x00000800) (define-enum GL_TRANSFORM_BIT #x00001000) (define-enum GL_ENABLE_BIT #x00002000) (define-enum GL_COLOR_BUFFER_BIT #x00004000) (define-enum GL_HINT_BIT #x00008000) (define-enum GL_EVAL_BIT #x00010000) (define-enum GL_LIST_BIT #x00020000) (define-enum GL_TEXTURE_BIT #x00040000) (define-enum GL_SCISSOR_BIT #x00080000) (define-enum GL_ALL_ATTRIB_BITS #x000FFFFF) (define-enum GL_PROXY_TEXTURE_1D #x8063) (define-enum GL_PROXY_TEXTURE_2D #x8064) (define-enum GL_TEXTURE_PRIORITY #x8066) (define-enum GL_TEXTURE_RESIDENT #x8067) (define-enum GL_TEXTURE_BINDING_1D #x8068) (define-enum GL_TEXTURE_BINDING_2D #x8069) (define-enum GL_TEXTURE_INTERNAL_FORMAT #x1003) (define-enum GL_ALPHA4 #x803B) (define-enum GL_ALPHA8 #x803C) (define-enum GL_ALPHA12 #x803D) (define-enum GL_ALPHA16 #x803E) (define-enum GL_LUMINANCE4 #x803F) (define-enum GL_LUMINANCE8 #x8040) (define-enum GL_LUMINANCE12 #x8041) (define-enum GL_LUMINANCE16 #x8042) (define-enum GL_LUMINANCE4_ALPHA4 #x8043) (define-enum GL_LUMINANCE6_ALPHA2 #x8044) (define-enum GL_LUMINANCE8_ALPHA8 #x8045) (define-enum GL_LUMINANCE12_ALPHA4 #x8046) (define-enum GL_LUMINANCE12_ALPHA12 #x8047) (define-enum GL_LUMINANCE16_ALPHA16 #x8048) (define-enum GL_INTENSITY #x8049) (define-enum GL_INTENSITY4 #x804A) (define-enum GL_INTENSITY8 #x804B) (define-enum GL_INTENSITY12 #x804C) (define-enum GL_INTENSITY16 #x804D) (define-enum GL_R3_G3_B2 #x2A10) (define-enum GL_RGB4 #x804F) (define-enum GL_RGB5 #x8050) (define-enum GL_RGB8 #x8051) (define-enum GL_RGB10 #x8052) (define-enum GL_RGB12 #x8053) (define-enum GL_RGB16 #x8054) (define-enum GL_RGBA2 #x8055) (define-enum GL_RGBA4 #x8056) (define-enum GL_RGB5_A1 #x8057) (define-enum GL_RGBA8 #x8058) (define-enum GL_RGB10_A2 #x8059) (define-enum GL_RGBA12 #x805A) (define-enum GL_RGBA16 #x805B) (define-enum GL_CLIENT_PIXEL_STORE_BIT #x00000001) (define-enum GL_CLIENT_VERTEX_ARRAY_BIT #x00000002) (define-enum GL_ALL_CLIENT_ATTRIB_BITS #xFFFFFFFF) (define-enum GL_CLIENT_ALL_ATTRIB_BITS #xFFFFFFFF) ;; These values are taken from SGI's glext.h. (define-enum 12 GL_UNSIGNED_BYTE_3_3_2 #x8032) (define-enum 12 GL_UNSIGNED_SHORT_4_4_4_4 #x8033) (define-enum 12 GL_UNSIGNED_SHORT_5_5_5_1 #x8034) (define-enum 12 GL_UNSIGNED_INT_8_8_8_8 #x8035) (define-enum 12 GL_UNSIGNED_INT_10_10_10_2 #x8036) (define-enum 12 GL_RESCALE_NORMAL #x803A) (define-enum 12 GL_TEXTURE_BINDING_3D #x806A) (define-enum 12 GL_PACK_SKIP_IMAGES #x806B) (define-enum 12 GL_PACK_IMAGE_HEIGHT #x806C) (define-enum 12 GL_UNPACK_SKIP_IMAGES #x806D) (define-enum 12 GL_UNPACK_IMAGE_HEIGHT #x806E) (define-enum 12 GL_TEXTURE_3D #x806F) (define-enum 12 GL_PROXY_TEXTURE_3D #x8070) (define-enum 12 GL_TEXTURE_DEPTH #x8071) (define-enum 12 GL_TEXTURE_WRAP_R #x8072) (define-enum 12 GL_MAX_3D_TEXTURE_SIZE #x8073) (define-enum 12 GL_UNSIGNED_BYTE_2_3_3_REV #x8362) (define-enum 12 GL_UNSIGNED_SHORT_5_6_5 #x8363) (define-enum 12 GL_UNSIGNED_SHORT_5_6_5_REV #x8364) (define-enum 12 GL_UNSIGNED_SHORT_4_4_4_4_REV #x8365) (define-enum 12 GL_UNSIGNED_SHORT_1_5_5_5_REV #x8366) (define-enum 12 GL_UNSIGNED_INT_8_8_8_8_REV #x8367) (define-enum 12 GL_UNSIGNED_INT_2_10_10_10_REV #x8368) (define-enum 12 GL_BGR #x80E0) (define-enum 12 GL_BGRA #x80E1) (define-enum 12 GL_MAX_ELEMENTS_VERTICES #x80E8) (define-enum 12 GL_MAX_ELEMENTS_INDICES #x80E9) (define-enum 12 GL_CLAMP_TO_EDGE #x812F) (define-enum 12 GL_TEXTURE_MIN_LOD #x813A) (define-enum 12 GL_TEXTURE_MAX_LOD #x813B) (define-enum 12 GL_TEXTURE_BASE_LEVEL #x813C) (define-enum 12 GL_TEXTURE_MAX_LEVEL #x813D) (define-enum 12 GL_LIGHT_MODEL_COLOR_CONTROL #x81F8) (define-enum 12 GL_SINGLE_COLOR #x81F9) (define-enum 12 GL_SEPARATE_SPECULAR_COLOR #x81FA) (define-enum 12 GL_SMOOTH_POINT_SIZE_RANGE #x0B12) (define-enum 12 GL_SMOOTH_POINT_SIZE_GRANULARITY #x0B13) (define-enum 12 GL_SMOOTH_LINE_WIDTH_RANGE #x0B22) (define-enum 12 GL_SMOOTH_LINE_WIDTH_GRANULARITY #x0B23) (define-enum 12 GL_ALIASED_POINT_SIZE_RANGE #x846D) (define-enum 12 GL_ALIASED_LINE_WIDTH_RANGE #x846E) (define-enum 'img GL_CONSTANT_COLOR #x8001) (define-enum 'img GL_ONE_MINUS_CONSTANT_COLOR #x8002) (define-enum 'img GL_CONSTANT_ALPHA #x8003) (define-enum 'img GL_ONE_MINUS_CONSTANT_ALPHA #x8004) (define-enum 'img GL_BLEND_COLOR #x8005) (define-enum 'img GL_FUNC_ADD #x8006) (define-enum 'img GL_MIN #x8007) (define-enum 'img GL_MAX #x8008) (define-enum 'img GL_BLEND_EQUATION #x8009) (define-enum 'img GL_FUNC_SUBTRACT #x800A) (define-enum 'img GL_FUNC_REVERSE_SUBTRACT #x800B) (define-enum 'img GL_CONVOLUTION_1D #x8010) (define-enum 'img GL_CONVOLUTION_2D #x8011) (define-enum 'img GL_SEPARABLE_2D #x8012) (define-enum 'img GL_CONVOLUTION_BORDER_MODE #x8013) (define-enum 'img GL_CONVOLUTION_FILTER_SCALE #x8014) (define-enum 'img GL_CONVOLUTION_FILTER_BIAS #x8015) (define-enum 'img GL_REDUCE #x8016) (define-enum 'img GL_CONVOLUTION_FORMAT #x8017) (define-enum 'img GL_CONVOLUTION_WIDTH #x8018) (define-enum 'img GL_CONVOLUTION_HEIGHT #x8019) (define-enum 'img GL_MAX_CONVOLUTION_WIDTH #x801A) (define-enum 'img GL_MAX_CONVOLUTION_HEIGHT #x801B) (define-enum 'img GL_POST_CONVOLUTION_RED_SCALE #x801C) (define-enum 'img GL_POST_CONVOLUTION_GREEN_SCALE #x801D) (define-enum 'img GL_POST_CONVOLUTION_BLUE_SCALE #x801E) (define-enum 'img GL_POST_CONVOLUTION_ALPHA_SCALE #x801F) (define-enum 'img GL_POST_CONVOLUTION_RED_BIAS #x8020) (define-enum 'img GL_POST_CONVOLUTION_GREEN_BIAS #x8021) (define-enum 'img GL_POST_CONVOLUTION_BLUE_BIAS #x8022) (define-enum 'img GL_POST_CONVOLUTION_ALPHA_BIAS #x8023) (define-enum 'img GL_HISTOGRAM #x8024) (define-enum 'img GL_PROXY_HISTOGRAM #x8025) (define-enum 'img GL_HISTOGRAM_WIDTH #x8026) (define-enum 'img GL_HISTOGRAM_FORMAT #x8027) (define-enum 'img GL_HISTOGRAM_RED_SIZE #x8028) (define-enum 'img GL_HISTOGRAM_GREEN_SIZE #x8029) (define-enum 'img GL_HISTOGRAM_BLUE_SIZE #x802A) (define-enum 'img GL_HISTOGRAM_ALPHA_SIZE #x802B) (define-enum 'img GL_HISTOGRAM_LUMINANCE_SIZE #x802C) (define-enum 'img GL_HISTOGRAM_SINK #x802D) (define-enum 'img GL_MINMAX #x802E) (define-enum 'img GL_MINMAX_FORMAT #x802F) (define-enum 'img GL_MINMAX_SINK #x8030) (define-enum 'img GL_TABLE_TOO_LARGE #x8031) (define-enum 'img GL_COLOR_MATRIX #x80B1) (define-enum 'img GL_COLOR_MATRIX_STACK_DEPTH #x80B2) (define-enum 'img GL_MAX_COLOR_MATRIX_STACK_DEPTH #x80B3) (define-enum 'img GL_POST_COLOR_MATRIX_RED_SCALE #x80B4) (define-enum 'img GL_POST_COLOR_MATRIX_GREEN_SCALE #x80B5) (define-enum 'img GL_POST_COLOR_MATRIX_BLUE_SCALE #x80B6) (define-enum 'img GL_POST_COLOR_MATRIX_ALPHA_SCALE #x80B7) (define-enum 'img GL_POST_COLOR_MATRIX_RED_BIAS #x80B8) (define-enum 'img GL_POST_COLOR_MATRIX_GREEN_BIAS #x80B9) (define-enum 'img GL_POST_COLOR_MATRIX_BLUE_BIAS #x80BA) (define-enum 'img GL_POST_COLOR_MATRIX_ALPHA_BIAS #x80BB) (define-enum 'img GL_COLOR_TABLE #x80D0) (define-enum 'img GL_POST_CONVOLUTION_COLOR_TABLE #x80D1) (define-enum 'img GL_POST_COLOR_MATRIX_COLOR_TABLE #x80D2) (define-enum 'img GL_PROXY_COLOR_TABLE #x80D3) (define-enum 'img GL_PROXY_POST_CONVOLUTION_COLOR_TABLE #x80D4) (define-enum 'img GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE #x80D5) (define-enum 'img GL_COLOR_TABLE_SCALE #x80D6) (define-enum 'img GL_COLOR_TABLE_BIAS #x80D7) (define-enum 'img GL_COLOR_TABLE_FORMAT #x80D8) (define-enum 'img GL_COLOR_TABLE_WIDTH #x80D9) (define-enum 'img GL_COLOR_TABLE_RED_SIZE #x80DA) (define-enum 'img GL_COLOR_TABLE_GREEN_SIZE #x80DB) (define-enum 'img GL_COLOR_TABLE_BLUE_SIZE #x80DC) (define-enum 'img GL_COLOR_TABLE_ALPHA_SIZE #x80DD) (define-enum 'img GL_COLOR_TABLE_LUMINANCE_SIZE #x80DE) (define-enum 'img GL_COLOR_TABLE_INTENSITY_SIZE #x80DF) (define-enum 'img GL_CONSTANT_BORDER #x8151) (define-enum 'img GL_REPLICATE_BORDER #x8153) (define-enum 'img GL_CONVOLUTION_BORDER_COLOR #x8154) (define-enum 13 GL_TEXTURE0 #x84C0) (define-enum 13 GL_TEXTURE1 #x84C1) (define-enum 13 GL_TEXTURE2 #x84C2) (define-enum 13 GL_TEXTURE3 #x84C3) (define-enum 13 GL_TEXTURE4 #x84C4) (define-enum 13 GL_TEXTURE5 #x84C5) (define-enum 13 GL_TEXTURE6 #x84C6) (define-enum 13 GL_TEXTURE7 #x84C7) (define-enum 13 GL_TEXTURE8 #x84C8) (define-enum 13 GL_TEXTURE9 #x84C9) (define-enum 13 GL_TEXTURE10 #x84CA) (define-enum 13 GL_TEXTURE11 #x84CB) (define-enum 13 GL_TEXTURE12 #x84CC) (define-enum 13 GL_TEXTURE13 #x84CD) (define-enum 13 GL_TEXTURE14 #x84CE) (define-enum 13 GL_TEXTURE15 #x84CF) (define-enum 13 GL_TEXTURE16 #x84D0) (define-enum 13 GL_TEXTURE17 #x84D1) (define-enum 13 GL_TEXTURE18 #x84D2) (define-enum 13 GL_TEXTURE19 #x84D3) (define-enum 13 GL_TEXTURE20 #x84D4) (define-enum 13 GL_TEXTURE21 #x84D5) (define-enum 13 GL_TEXTURE22 #x84D6) (define-enum 13 GL_TEXTURE23 #x84D7) (define-enum 13 GL_TEXTURE24 #x84D8) (define-enum 13 GL_TEXTURE25 #x84D9) (define-enum 13 GL_TEXTURE26 #x84DA) (define-enum 13 GL_TEXTURE27 #x84DB) (define-enum 13 GL_TEXTURE28 #x84DC) (define-enum 13 GL_TEXTURE29 #x84DD) (define-enum 13 GL_TEXTURE30 #x84DE) (define-enum 13 GL_TEXTURE31 #x84DF) (define-enum 13 GL_ACTIVE_TEXTURE #x84E0) (define-enum 13 GL_CLIENT_ACTIVE_TEXTURE #x84E1) (define-enum 13 GL_MAX_TEXTURE_UNITS #x84E2) (define-enum 13 GL_TRANSPOSE_MODELVIEW_MATRIX #x84E3) (define-enum 13 GL_TRANSPOSE_PROJECTION_MATRIX #x84E4) (define-enum 13 GL_TRANSPOSE_TEXTURE_MATRIX #x84E5) (define-enum 13 GL_TRANSPOSE_COLOR_MATRIX #x84E6) (define-enum 13 GL_MULTISAMPLE #x809D) (define-enum 13 GL_SAMPLE_ALPHA_TO_COVERAGE #x809E) (define-enum 13 GL_SAMPLE_ALPHA_TO_ONE #x809F) (define-enum 13 GL_SAMPLE_COVERAGE #x80A0) (define-enum 13 GL_SAMPLE_BUFFERS #x80A8) (define-enum 13 GL_SAMPLES #x80A9) (define-enum 13 GL_SAMPLE_COVERAGE_VALUE #x80AA) (define-enum 13 GL_SAMPLE_COVERAGE_INVERT #x80AB) (define-enum 13 GL_MULTISAMPLE_BIT #x20000000) (define-enum 13 GL_NORMAL_MAP #x8511) (define-enum 13 GL_REFLECTION_MAP #x8512) (define-enum 13 GL_TEXTURE_CUBE_MAP #x8513) (define-enum 13 GL_TEXTURE_BINDING_CUBE_MAP #x8514) (define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_X #x8515) (define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_X #x8516) (define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_Y #x8517) (define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y #x8518) (define-enum 13 GL_TEXTURE_CUBE_MAP_POSITIVE_Z #x8519) (define-enum 13 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z #x851A) (define-enum 13 GL_PROXY_TEXTURE_CUBE_MAP #x851B) (define-enum 13 GL_MAX_CUBE_MAP_TEXTURE_SIZE #x851C) (define-enum 13 GL_COMPRESSED_ALPHA #x84E9) (define-enum 13 GL_COMPRESSED_LUMINANCE #x84EA) (define-enum 13 GL_COMPRESSED_LUMINANCE_ALPHA #x84EB) (define-enum 13 GL_COMPRESSED_INTENSITY #x84EC) (define-enum 13 GL_COMPRESSED_RGB #x84ED) (define-enum 13 GL_COMPRESSED_RGBA #x84EE) (define-enum 13 GL_TEXTURE_COMPRESSION_HINT #x84EF) (define-enum 13 GL_TEXTURE_COMPRESSED_IMAGE_SIZE #x86A0) (define-enum 13 GL_TEXTURE_COMPRESSED #x86A1) (define-enum 13 GL_NUM_COMPRESSED_TEXTURE_FORMATS #x86A2) (define-enum 13 GL_COMPRESSED_TEXTURE_FORMATS #x86A3) (define-enum 13 GL_CLAMP_TO_BORDER #x812D) (define-enum 13 GL_COMBINE #x8570) (define-enum 13 GL_COMBINE_RGB #x8571) (define-enum 13 GL_COMBINE_ALPHA #x8572) (define-enum 13 GL_SOURCE0_RGB #x8580) (define-enum 13 GL_SOURCE1_RGB #x8581) (define-enum 13 GL_SOURCE2_RGB #x8582) (define-enum 13 GL_SOURCE0_ALPHA #x8588) (define-enum 13 GL_SOURCE1_ALPHA #x8589) (define-enum 13 GL_SOURCE2_ALPHA #x858A) (define-enum 13 GL_OPERAND0_RGB #x8590) (define-enum 13 GL_OPERAND1_RGB #x8591) (define-enum 13 GL_OPERAND2_RGB #x8592) (define-enum 13 GL_OPERAND0_ALPHA #x8598) (define-enum 13 GL_OPERAND1_ALPHA #x8599) (define-enum 13 GL_OPERAND2_ALPHA #x859A) (define-enum 13 GL_RGB_SCALE #x8573) (define-enum 13 GL_ADD_SIGNED #x8574) (define-enum 13 GL_INTERPOLATE #x8575) (define-enum 13 GL_SUBTRACT #x84E7) (define-enum 13 GL_CONSTANT #x8576) (define-enum 13 GL_PRIMARY_COLOR #x8577) (define-enum 13 GL_PREVIOUS #x8578) (define-enum 13 GL_DOT3_RGB #x86AE) (define-enum 13 GL_DOT3_RGBA #x86AF) (define-enum 14 GL_BLEND_DST_RGB #x80C8) (define-enum 14 GL_BLEND_SRC_RGB #x80C9) (define-enum 14 GL_BLEND_DST_ALPHA #x80CA) (define-enum 14 GL_BLEND_SRC_ALPHA #x80CB) (define-enum 14 GL_POINT_SIZE_MIN #x8126) (define-enum 14 GL_POINT_SIZE_MAX #x8127) (define-enum 14 GL_POINT_FADE_THRESHOLD_SIZE #x8128) (define-enum 14 GL_POINT_DISTANCE_ATTENUATION #x8129) (define-enum 14 GL_GENERATE_MIPMAP #x8191) (define-enum 14 GL_GENERATE_MIPMAP_HINT #x8192) (define-enum 14 GL_DEPTH_COMPONENT16 #x81A5) (define-enum 14 GL_DEPTH_COMPONENT24 #x81A6) (define-enum 14 GL_DEPTH_COMPONENT32 #x81A7) (define-enum 14 GL_MIRRORED_REPEAT #x8370) (define-enum 14 GL_FOG_COORDINATE_SOURCE #x8450) (define-enum 14 GL_FOG_COORDINATE #x8451) (define-enum 14 GL_FRAGMENT_DEPTH #x8452) (define-enum 14 GL_CURRENT_FOG_COORDINATE #x8453) (define-enum 14 GL_FOG_COORDINATE_ARRAY_TYPE #x8454) (define-enum 14 GL_FOG_COORDINATE_ARRAY_STRIDE #x8455) (define-enum 14 GL_FOG_COORDINATE_ARRAY_POINTER #x8456) (define-enum 14 GL_FOG_COORDINATE_ARRAY #x8457) (define-enum 14 GL_COLOR_SUM #x8458) (define-enum 14 GL_CURRENT_SECONDARY_COLOR #x8459) (define-enum 14 GL_SECONDARY_COLOR_ARRAY_SIZE #x845A) (define-enum 14 GL_SECONDARY_COLOR_ARRAY_TYPE #x845B) (define-enum 14 GL_SECONDARY_COLOR_ARRAY_STRIDE #x845C) (define-enum 14 GL_SECONDARY_COLOR_ARRAY_POINTER #x845D) (define-enum 14 GL_SECONDARY_COLOR_ARRAY #x845E) (define-enum 14 GL_MAX_TEXTURE_LOD_BIAS #x84FD) (define-enum 14 GL_TEXTURE_FILTER_CONTROL #x8500) (define-enum 14 GL_TEXTURE_LOD_BIAS #x8501) (define-enum 14 GL_INCR_WRAP #x8507) (define-enum 14 GL_DECR_WRAP #x8508) (define-enum 14 GL_TEXTURE_DEPTH_SIZE #x884A) (define-enum 14 GL_DEPTH_TEXTURE_MODE #x884B) (define-enum 14 GL_TEXTURE_COMPARE_MODE #x884C) (define-enum 14 GL_TEXTURE_COMPARE_FUNC #x884D) (define-enum 14 GL_COMPARE_R_TO_TEXTURE #x884E) (define-enum 15 GL_BUFFER_SIZE #x8764) (define-enum 15 GL_BUFFER_USAGE #x8765) (define-enum 15 GL_QUERY_COUNTER_BITS #x8864) (define-enum 15 GL_CURRENT_QUERY #x8865) (define-enum 15 GL_QUERY_RESULT #x8866) (define-enum 15 GL_QUERY_RESULT_AVAILABLE #x8867) (define-enum 15 GL_ARRAY_BUFFER #x8892) (define-enum 15 GL_ELEMENT_ARRAY_BUFFER #x8893) (define-enum 15 GL_ARRAY_BUFFER_BINDING #x8894) (define-enum 15 GL_ELEMENT_ARRAY_BUFFER_BINDING #x8895) (define-enum 15 GL_VERTEX_ARRAY_BUFFER_BINDING #x8896) (define-enum 15 GL_NORMAL_ARRAY_BUFFER_BINDING #x8897) (define-enum 15 GL_COLOR_ARRAY_BUFFER_BINDING #x8898) (define-enum 15 GL_INDEX_ARRAY_BUFFER_BINDING #x8899) (define-enum 15 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING #x889A) (define-enum 15 GL_EDGE_FLAG_ARRAY_BUFFER_BINDING #x889B) (define-enum 15 GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING #x889C) (define-enum 15 GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING #x889D) (define-enum 15 GL_WEIGHT_ARRAY_BUFFER_BINDING #x889E) (define-enum 15 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING #x889F) (define-enum 15 GL_READ_ONLY #x88B8) (define-enum 15 GL_WRITE_ONLY #x88B9) (define-enum 15 GL_READ_WRITE #x88BA) (define-enum 15 GL_BUFFER_ACCESS #x88BB) (define-enum 15 GL_BUFFER_MAPPED #x88BC) (define-enum 15 GL_BUFFER_MAP_POINTER #x88BD) (define-enum 15 GL_STREAM_DRAW #x88E0) (define-enum 15 GL_STREAM_READ #x88E1) (define-enum 15 GL_STREAM_COPY #x88E2) (define-enum 15 GL_STATIC_DRAW #x88E4) (define-enum 15 GL_STATIC_READ #x88E5) (define-enum 15 GL_STATIC_COPY #x88E6) (define-enum 15 GL_DYNAMIC_DRAW #x88E8) (define-enum 15 GL_DYNAMIC_READ #x88E9) (define-enum 15 GL_DYNAMIC_COPY #x88EA) (define-enum 15 GL_SAMPLES_PASSED #x8914) (define-enum 15 GL_FOG_COORD_SRC GL_FOG_COORDINATE_SOURCE) (define-enum 15 GL_FOG_COORD GL_FOG_COORDINATE) (define-enum 15 GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE) (define-enum 15 GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE) (define-enum 15 GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE) (define-enum 15 GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER) (define-enum 15 GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY) (define-enum 15 GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING) (define-enum 15 GL_SRC0_RGB GL_SOURCE0_RGB) (define-enum 15 GL_SRC1_RGB GL_SOURCE1_RGB) (define-enum 15 GL_SRC2_RGB GL_SOURCE2_RGB) (define-enum 15 GL_SRC0_ALPHA GL_SOURCE0_ALPHA) (define-enum 15 GL_SRC1_ALPHA GL_SOURCE1_ALPHA) (define-enum 15 GL_SRC2_ALPHA GL_SOURCE2_ALPHA) ;; These values are taken from SGI's glu.h. (define-enum GLU_FALSE 0) (define-enum GLU_TRUE 1) (define-enum GLU_VERSION 100800) (define-enum GLU_EXTENSIONS 100801) (define-enum GLU_INVALID_ENUM 100900) (define-enum GLU_INVALID_VALUE 100901) (define-enum GLU_OUT_OF_MEMORY 100902) (define-enum GLU_INVALID_OPERATION 100904) (define-enum GLU_OUTLINE_POLYGON 100240) (define-enum GLU_OUTLINE_PATCH 100241) (define-enum GLU_NURBS_ERROR 100103) (define-enum GLU_ERROR 100103) (define-enum GLU_NURBS_BEGIN 100164) (define-enum GLU_NURBS_BEGIN_EXT 100164) (define-enum GLU_NURBS_VERTEX 100165) (define-enum GLU_NURBS_VERTEX_EXT 100165) (define-enum GLU_NURBS_NORMAL 100166) (define-enum GLU_NURBS_NORMAL_EXT 100166) (define-enum GLU_NURBS_COLOR 100167) (define-enum GLU_NURBS_COLOR_EXT 100167) (define-enum GLU_NURBS_TEXTURE_COORD 100168) (define-enum GLU_NURBS_TEX_COORD_EXT 100168) (define-enum GLU_NURBS_END 100169) (define-enum GLU_NURBS_END_EXT 100169) (define-enum GLU_NURBS_BEGIN_DATA 100170) (define-enum GLU_NURBS_BEGIN_DATA_EXT 100170) (define-enum GLU_NURBS_VERTEX_DATA 100171) (define-enum GLU_NURBS_VERTEX_DATA_EXT 100171) (define-enum GLU_NURBS_NORMAL_DATA 100172) (define-enum GLU_NURBS_NORMAL_DATA_EXT 100172) (define-enum GLU_NURBS_COLOR_DATA 100173) (define-enum GLU_NURBS_COLOR_DATA_EXT 100173) (define-enum GLU_NURBS_TEXTURE_COORD_DATA 100174) (define-enum GLU_NURBS_TEX_COORD_DATA_EXT 100174) (define-enum GLU_NURBS_END_DATA 100175) (define-enum GLU_NURBS_END_DATA_EXT 100175) (define-enum GLU_NURBS_ERROR1 100251) (define-enum GLU_NURBS_ERROR2 100252) (define-enum GLU_NURBS_ERROR3 100253) (define-enum GLU_NURBS_ERROR4 100254) (define-enum GLU_NURBS_ERROR5 100255) (define-enum GLU_NURBS_ERROR6 100256) (define-enum GLU_NURBS_ERROR7 100257) (define-enum GLU_NURBS_ERROR8 100258) (define-enum GLU_NURBS_ERROR9 100259) (define-enum GLU_NURBS_ERROR10 100260) (define-enum GLU_NURBS_ERROR11 100261) (define-enum GLU_NURBS_ERROR12 100262) (define-enum GLU_NURBS_ERROR13 100263) (define-enum GLU_NURBS_ERROR14 100264) (define-enum GLU_NURBS_ERROR15 100265) (define-enum GLU_NURBS_ERROR16 100266) (define-enum GLU_NURBS_ERROR17 100267) (define-enum GLU_NURBS_ERROR18 100268) (define-enum GLU_NURBS_ERROR19 100269) (define-enum GLU_NURBS_ERROR20 100270) (define-enum GLU_NURBS_ERROR21 100271) (define-enum GLU_NURBS_ERROR22 100272) (define-enum GLU_NURBS_ERROR23 100273) (define-enum GLU_NURBS_ERROR24 100274) (define-enum GLU_NURBS_ERROR25 100275) (define-enum GLU_NURBS_ERROR26 100276) (define-enum GLU_NURBS_ERROR27 100277) (define-enum GLU_NURBS_ERROR28 100278) (define-enum GLU_NURBS_ERROR29 100279) (define-enum GLU_NURBS_ERROR30 100280) (define-enum GLU_NURBS_ERROR31 100281) (define-enum GLU_NURBS_ERROR32 100282) (define-enum GLU_NURBS_ERROR33 100283) (define-enum GLU_NURBS_ERROR34 100284) (define-enum GLU_NURBS_ERROR35 100285) (define-enum GLU_NURBS_ERROR36 100286) (define-enum GLU_NURBS_ERROR37 100287) (define-enum GLU_AUTO_LOAD_MATRIX 100200) (define-enum GLU_CULLING 100201) (define-enum GLU_SAMPLING_TOLERANCE 100203) (define-enum GLU_DISPLAY_MODE 100204) (define-enum GLU_PARAMETRIC_TOLERANCE 100202) (define-enum GLU_SAMPLING_METHOD 100205) (define-enum GLU_U_STEP 100206) (define-enum GLU_V_STEP 100207) (define-enum GLU_NURBS_MODE 100160) (define-enum GLU_NURBS_MODE_EXT 100160) (define-enum GLU_NURBS_TESSELLATOR 100161) (define-enum GLU_NURBS_TESSELLATOR_EXT 100161) (define-enum GLU_NURBS_RENDERER 100162) (define-enum GLU_NURBS_RENDERER_EXT 100162) (define-enum GLU_OBJECT_PARAMETRIC_ERROR 100208) (define-enum GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208) (define-enum GLU_OBJECT_PATH_LENGTH 100209) (define-enum GLU_OBJECT_PATH_LENGTH_EXT 100209) (define-enum GLU_PATH_LENGTH 100215) (define-enum GLU_PARAMETRIC_ERROR 100216) (define-enum GLU_DOMAIN_DISTANCE 100217) (define-enum GLU_MAP1_TRIM_2 100210) (define-enum GLU_MAP1_TRIM_3 100211) (define-enum GLU_POINT 100010) (define-enum GLU_LINE 100011) (define-enum GLU_FILL 100012) (define-enum GLU_SILHOUETTE 100013) (define-enum GLU_SMOOTH 100000) (define-enum GLU_FLAT 100001) (define-enum GLU_NONE 100002) (define-enum GLU_OUTSIDE 100020) (define-enum GLU_INSIDE 100021) (define-enum GLU_TESS_BEGIN 100100) (define-enum GLU_BEGIN 100100) (define-enum GLU_TESS_VERTEX 100101) (define-enum GLU_VERTEX 100101) (define-enum GLU_TESS_END 100102) (define-enum GLU_END 100102) (define-enum GLU_TESS_ERROR 100103) (define-enum GLU_TESS_EDGE_FLAG 100104) (define-enum GLU_EDGE_FLAG 100104) (define-enum GLU_TESS_COMBINE 100105) (define-enum GLU_TESS_BEGIN_DATA 100106) (define-enum GLU_TESS_VERTEX_DATA 100107) (define-enum GLU_TESS_END_DATA 100108) (define-enum GLU_TESS_ERROR_DATA 100109) (define-enum GLU_TESS_EDGE_FLAG_DATA 100110) (define-enum GLU_TESS_COMBINE_DATA 100111) (define-enum GLU_CW 100120) (define-enum GLU_CCW 100121) (define-enum GLU_INTERIOR 100122) (define-enum GLU_EXTERIOR 100123) (define-enum GLU_UNKNOWN 100124) (define-enum GLU_TESS_WINDING_RULE 100140) (define-enum GLU_TESS_BOUNDARY_ONLY 100141) (define-enum GLU_TESS_TOLERANCE 100142) (define-enum GLU_TESS_ERROR1 100151) (define-enum GLU_TESS_ERROR2 100152) (define-enum GLU_TESS_ERROR3 100153) (define-enum GLU_TESS_ERROR4 100154) (define-enum GLU_TESS_ERROR5 100155) (define-enum GLU_TESS_ERROR6 100156) (define-enum GLU_TESS_ERROR7 100157) (define-enum GLU_TESS_ERROR8 100158) (define-enum GLU_TESS_MISSING_BEGIN_POLYGON 100151) (define-enum GLU_TESS_MISSING_BEGIN_CONTOUR 100152) (define-enum GLU_TESS_MISSING_END_POLYGON 100153) (define-enum GLU_TESS_MISSING_END_CONTOUR 100154) (define-enum GLU_TESS_COORD_TOO_LARGE 100155) (define-enum GLU_TESS_NEED_COMBINE_CALLBACK 100156) (define-enum GLU_TESS_WINDING_ODD 100130) (define-enum GLU_TESS_WINDING_NONZERO 100131) (define-enum GLU_TESS_WINDING_POSITIVE 100132) (define-enum GLU_TESS_WINDING_NEGATIVE 100133) (define-enum GLU_TESS_WINDING_ABS_GEQ_TWO 100134) (define-enum GLU_TESS_MAX_COORD 1.0e150)