X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=irrlicht%2Fvideo.scm;h=5659276c57bd432f90fc69c5926af973b0c28265;hp=999959550008bb9b35be22b4173b112f408a85f6;hb=09e9ed196aadab0f77e831c134fce8bdb58b772b;hpb=704cf6c2cc3d308c625071f6e03bd20ed2d833f8 diff --git a/irrlicht/video.scm b/irrlicht/video.scm index 9999595..5659276 100644 --- a/irrlicht/video.scm +++ b/irrlicht/video.scm @@ -19,22 +19,51 @@ (define-module (irrlicht video) - #:export (begin-scene - get-texture)) - -(load-extension "libguile-irrlicht" "init_guile_irrlicht") - -(define irr-begin-scene begin-scene) -(define* (begin-scene video-driver - #:key - (back-buffer #t) - (z-buffer #t) - (color '(255 0 0 0)) - (video-data #f) - (source-rect #f)) - (irr-begin-scene video-driver - back-buffer - z-buffer - color - video-data - source-rect)) + #:use-module (oop goops) + #:use-module (ice-9 optargs) + #:use-module (irrlicht base) + #:use-module (irrlicht foreign)) + + +;; ITexture +(define-class () + (irr-class #:init-value "ITexture" #:getter irr-class)) + +(export ) + + +;; IVideoDriver +(define-class () + (irr-class #:init-value "IVideoDriver" #:getter irr-class)) + +(define-method (begin-scene (video-driver ) . rest) + (let-keywords rest #f + ((back-buffer #t) + (z-buffer #t) + (color '(255 0 0 0)) + video-data + source-rect) + ((get-irrlicht-proc "beginScene" video-driver) + video-driver + back-buffer + z-buffer + color + video-data + source-rect))) + +(define-method (end-scene (video-driver )) + ((get-irrlicht-proc "endScene" video-driver) + video-driver)) + +(define-method (get-name (video-driver )) + (let ((getName (get-irrlicht-proc "getName" video-driver))) + (getName video-driver))) + +(define-method (get-texture (video-driver ) filename) + (make + #:irr-pointer + ((get-irrlicht-proc "getTexture" video-driver) + video-driver + filename))) + +(export begin-scene end-scene get-name get-texture)