X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=irrlicht%2Fvideo.scm;h=dc61f644279cb1e90e18e4c45fc2a42065d697b2;hb=86e2a7367842fd005dda3b20454f370d4ebfcf2c;hp=1df01fe47a04d9bd251f77455fafaa90d808893c;hpb=cc03ee884302dfeb94b5da68dd2b618c41333d5c;p=guile-irrlicht.git diff --git a/irrlicht/video.scm b/irrlicht/video.scm index 1df01fe..dc61f64 100644 --- a/irrlicht/video.scm +++ b/irrlicht/video.scm @@ -19,6 +19,7 @@ (define-module (irrlicht video) + #:use-module (ice-9 match) #:use-module (system foreign) #:use-module ((irrlicht bindings core) #:prefix ffi-core:) #:use-module ((irrlicht bindings video) #:prefix ffi-video:) @@ -30,6 +31,7 @@ get-texture get-video-driver-name set-material! + set-transform! make-s3dvertex vertex-position make-material)) @@ -68,6 +70,26 @@ driver (ffi-video:smaterial->pointer material))) +(define (set-transform! driver state mat) + (let ((transform-state + (match state + ('view ffi-video:ETS_VIEW) + ('world ffi-video:ETS_WORLD) + ('projection ffi-video:ETS_PROJECTION) + ('texture0 ffi-video:ETS_TEXTURE_0) + ('texture1 ffi-video:ETS_TEXTURE_1) + ('texture2 ffi-video:ETS_TEXTURE_2) + ('texture3 ffi-video:ETS_TEXTURE_3) + ('texture4 ffi-video:ETS_TEXTURE_4) + ('texture5 ffi-video:ETS_TEXTURE_5) + ('texture6 ffi-video:ETS_TEXTURE_6) + ('texture7 ffi-video:ETS_TEXTURE_7) + ('count ffi-video:ETS_COUNT)))) + (ffi-video:set-transform + driver + transform-state + mat))) + ;; s3d vertices (define (make-s3dvertex position normal color t-coords) (ffi-video:pointer->s3dvertex