]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - irrlicht/bindings/video.scm
Bindings refactor
[guile-irrlicht.git] / irrlicht / bindings / video.scm
index 47b05d1c24cf046d64b232708ea6b792835ef42c..2e60ff35d4a3626c3615e96dd621183907ece359 100644 (file)
@@ -19,9 +19,8 @@
 
 
 (define-module (irrlicht bindings video)
-  #:use-module (system foreign))
-
-(define cirr (dynamic-link "libCIrrlicht"))
+  #:use-module (system foreign)
+  #:use-module (irrlicht util foreign))
 
 ;; E_DRIVER_TYPE enum
 (define-public EDT_NULL            0)
 
 ;; scolor struct
 (define-public scolor
-  (list uint32 uint32 uint32 uint32))
+  (list uint8 uint8 uint8 uint8))
+
+(define-public (scolor->pointer data)
+  (make-c-struct scolor (reverse data)))
 
 ;; Driver functions
-(define-public begin-scene
-  (pointer->procedure
-   int
-   (dynamic-func "irr_video_beginScene" cirr)
-   (list '* int int '* '* '*)))
+(define-foreign begin-scene
+  int "irr_video_beginScene" (list '* int int '* '* '*))
+
+(define-foreign end-scene
+  int "irr_video_endScene" (list '*))
+
+(define-foreign get-fps
+  int "irr_video_getFPS" (list '*))
 
-(define-public end-scene
-  (pointer->procedure
-   int
-   (dynamic-func "irr_video_endScene" cirr)
-   (list '*)))
+(define-foreign get-texture
+  '* "irr_video_getTexture" (list '* '*))
 
-(define-public get-texture
-  (pointer->procedure
-   '*
-   (dynamic-func "irr_video_getTexture" cirr)
-   (list '* '*)))
+(define-foreign get-video-driver-name
+  '* "irr_video_getName" (list '*))