X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=irrlicht%2Futil.scm;h=afc3cb85b69d01d250c7ad41c2d530f51e3b941f;hb=630eb6a58696fdb056f9f25209e72095d7dec779;hp=8c5b9e4eb4651465c38ffda5b64d101a8623c4e6;hpb=d8367430b147ccdb2505295a7d50f1f412b4e6e1;p=guile-irrlicht.git diff --git a/irrlicht/util.scm b/irrlicht/util.scm index 8c5b9e4..afc3cb8 100644 --- a/irrlicht/util.scm +++ b/irrlicht/util.scm @@ -19,11 +19,25 @@ (define-module (irrlicht util) + #:use-module (system foreign) #:export (bool->integer - integer->bool)) + integer->bool + define-foreign)) (define (bool->integer var) (if var 1 0)) (define (integer->bool var) (if (= var 0) #f #t)) + +;; Based on guile-sdl2 function, thanks a lot +(define irrlicht-func + (let ((cirr (dynamic-link "libCIrrlicht"))) + (lambda (return-type function-name arg-types) + (pointer->procedure return-type + (dynamic-func function-name cirr) + arg-types)))) + +(define-syntax-rule (define-foreign name return-type func-name arg-types) + (define-public name + (irrlicht-func return-type func-name arg-types)))