X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=examples%2F01-hello-world.scm;fp=examples%2F01-hello-world.scm;h=5269400346b7be28cd8fe239223e712adf156c6b;hp=c320ed3af560ff81bb835129b3e75abbf61c2d77;hb=7a8bf944735c240977443b32e33d54c81dbeba29;hpb=3b7aef4a6faa68a67d3c8f1f355a169a42c8651e diff --git a/examples/01-hello-world.scm b/examples/01-hello-world.scm index c320ed3..5269400 100644 --- a/examples/01-hello-world.scm +++ b/examples/01-hello-world.scm @@ -22,44 +22,54 @@ ;;; http://irrlicht.sourceforge.net/docu/example001.html -(use-modules (irrlicht)) +(use-modules (irrlicht) + (oop goops)) + +(define (media-path file) + (let ((current-path (dirname (current-filename)))) + (string-join (list current-path "media" file) file-name-separator-string))) ;; start up the engine (define device (create-device - #:device-type 'software - #:window-size '(640 480))) + EDT-SOFTWARE + (make #:args '(640 480)))) -(set-window-caption! device "Hello World! - Irrlicht Engine Demo") +(set-window-caption device "Hello World! - Irrlicht Engine Demo") (define driver (get-video-driver device)) (define scene-manager (get-scene-manager device)) (define gui-env (get-gui-environment device)) ;; static text -(add-static-text! +(add-static-text gui-env "Hello World! This is the Irrlicht Software renderer!" - '(10 10 260 22) - #:border #t) + (make #:args '(10 10 260 22)) + #t) ;; load a Quake2 model -(define mesh (get-mesh scene-manager "media/sydney.md2")) -(define node (add-animated-mesh-scene-node! scene-manager mesh)) -(set-material-flag! node 'lighting #f) -(set-md2-animation! node 'stand) -(set-material-texture! node 0 (get-texture driver "media/sydney.bmp")) +(define mesh (get-mesh scene-manager (media-path "sydney.md2"))) +(define node (add-animated-mesh-scene-node scene-manager mesh)) +(set-material-flag node EMF-LIGHTING #f) +(set-md2-animation node EMAT-STAND) +(set-material-texture node 0 (get-texture driver (media-path "sydney.bmp"))) ;; place camera -(add-camera-scene-node! scene-manager #:position '(0 30 -40) #:lookat '(0 5 0)) +(let ((position (make #:args '(0 30 -40))) + (lookat (make #:args '(0 5 0)))) + (add-camera-scene-node scene-manager node position lookat)) ;; draw everything -(while (run device) - (begin-scene driver #:color '(255 100 101 140)) - (draw-all scene-manager) - (draw-all gui-env) - (end-scene driver)) +(let ((back-buffer #t) + (z-buffer #t) + (color (make #:args '(255 100 101 140)))) + (while (run device) + (begin-scene driver back-buffer z-buffer color) + (draw-all scene-manager) + (draw-all gui-env) + (end-scene driver))) ;; delete device -(drop! device) +(drop device) (exit #t)