X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=irrlicht%2Fvideo.scm;h=6c56f62776c86290d16642b76e7e2c8b157b0b2a;hb=357f279e004c6257a160205835c06c283d317ef7;hp=9acfa1853c7cc3272286e5ee5d7ebcfb78f7f1a0;hpb=627c8d0c947391cb025671d281bc91370e55bb03;p=guile-irrlicht.git diff --git a/irrlicht/video.scm b/irrlicht/video.scm index 9acfa18..6c56f62 100644 --- a/irrlicht/video.scm +++ b/irrlicht/video.scm @@ -32,60 +32,6 @@ (export ) -;; IVideoDriver -(define-class () - (irr-class #:init-value "IVideoDriver")) - -(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-fps (video-driver )) - (let ((getFPS (get-irrlicht-proc "getFPS" video-driver))) - (getFPS 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-fps get-name get-texture) - - -;; S3DVertex -(define-class () - (irr-class #:init-value "S3DVertex")) - -(define (make-vertex3d position normal color tcoords) - (let ((S3DVertex_make (get-irrlicht-proc "S3DVertex_make"))) - (make - #:irr-pointer - (S3DVertex_make position normal color tcoords)))) - -(export make-vertex3d) - - ;; SMaterial (define-class () (irr-class #:init-value "SMaterial")) @@ -137,3 +83,77 @@ #:normalize-normals normalize-normals #:use-mip-maps use-mip-maps)))) (export make-material) + + +;; IVideoDriver +(define-class () + (irr-class #:init-value "IVideoDriver")) + +(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 (draw-vertex-primitive-list (video-driver ) vertices indices . rest) + (let-keywords rest #f + ((v-type 'standard) + (p-type 'triangles)) + (let ((drawVertexPrimitiveList (get-irrlicht-proc "drawVertexPrimitiveList" video-driver))) + (drawVertexPrimitiveList video-driver vertices indices v-type p-type)))) + +(define-method (end-scene (video-driver )) + ((get-irrlicht-proc "endScene" video-driver) + video-driver)) + +(define-method (get-fps (video-driver )) + (let ((getFPS (get-irrlicht-proc "getFPS" video-driver))) + (getFPS 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))) + +(define-method (set-material! (video-driver ) (material )) + (let ((setMaterial (get-irrlicht-proc "setMaterial" video-driver))) + (setMaterial video-driver material))) + +(define-method (set-transform! (video-driver ) state mat) + (let ((setTransform (get-irrlicht-proc "setTransform" video-driver))) + (setTransform video-driver state mat))) + +(export begin-scene draw-vertex-primitive-list end-scene get-fps get-name get-texture + set-material! set-transform!) + + +;; S3DVertex +(define-class () + (irr-class #:init-value "S3DVertex")) + +(define-method (get-position (vertex3d )) + (let ((S3DVertex_Pos (get-irrlicht-proc "S3DVertex_Pos"))) + (S3DVertex_Pos vertex3d))) + +(define (make-vertex3d position normal color tcoords) + (let ((S3DVertex_make (get-irrlicht-proc "S3DVertex_make"))) + (make + #:irr-pointer + (S3DVertex_make position normal color tcoords)))) + +(export get-position make-vertex3d)