map GLboolean to Scheme boolean
authorDaniel Hartwig <mandyke@gmail.com>
Mon, 11 Feb 2013 06:35:32 +0000 (14:35 +0800)
committerDaniel Hartwig <mandyke@gmail.com>
Mon, 11 Feb 2013 06:35:32 +0000 (14:35 +0800)
* figl/gl/types.scm (GLboolean): Convert to and from appropriate
  Scheme values.

figl/gl/types.scm

index 9b5da2e..cbc7e25 100644 (file)
@@ -86,7 +86,6 @@
 (define %ptr ffi:ptrdiff_t)
 
 (define-simple-foreign-type void ffi:void)
-(define-simple-foreign-type GLboolean ffi:uint8)
 (define-simple-foreign-type GLbyte ffi:int8)
 (define-simple-foreign-type GLubyte ffi:uint8)
 (define-simple-foreign-type GLchar ffi:int8)
 (define-simple-foreign-type void-* '*)
 (define-simple-foreign-type const-GLvoid-* '*)
 
+(define GL_FALSE 0)
+(define GL_TRUE 1)
+
+(define-foreign-type GLboolean ffi:uint8
+  (lambda (x) (if x GL_TRUE GL_FALSE))
+  (lambda (x) (eqv? x GL_TRUE)))
+
 (define (coerce-array-pointer x)
   (cond
    ((ffi:pointer? x)