(define-module (irrlicht video)
#:use-module (oop goops)
+ #:use-module (ice-9 optargs)
#:use-module (irrlicht base)
#:use-module (irrlicht foreign))
;; ITexture
(define-class <texture> (<irrlicht-base>)
- (irr-class #:init-value "ITexture" #:getter irr-class))
+ (irr-class #:init-value "ITexture"))
(export <texture>)
;; IVideoDriver
(define-class <video-driver> (<irrlicht-base>)
- (irr-class #:init-value "IVideoDriver" #:getter irr-class))
+ (irr-class #:init-value "IVideoDriver"))
+
+(define-method (begin-scene (video-driver <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 <video-driver>))
+ ((get-irrlicht-proc "endScene" video-driver)
+ video-driver))
+
+(define-method (get-name (video-driver <video-driver>))
+ (let ((getName (get-irrlicht-proc "getName" video-driver)))
+ (getName video-driver)))
(define-method (get-texture (video-driver <video-driver>) filename)
(make <texture>
#:irr-pointer
((get-irrlicht-proc "getTexture" video-driver)
- (irr-pointer video-driver)
+ video-driver
filename)))
-(export <video-driver> get-texture)
+(export <video-driver> begin-scene end-scene get-name get-texture)