From 44a43fd9dbdcac1ccef9eb7f432261047fe75032 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sat, 6 Sep 2014 15:03:13 -0400 Subject: scene: Use GLSL uniforms in scene nodes. * (draw-scene-node): Add uniforms parameter and use the uniforms when rendering a mesh. --- sly/scene.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/sly/scene.scm b/sly/scene.scm index 7f6ec5e..d133d37 100644 --- a/sly/scene.scm +++ b/sly/scene.scm @@ -112,14 +112,17 @@ (set-scene-node-transform! node t) t))) -(define (draw-scene-node node alpha transform) +(define* (draw-scene-node node alpha transform #:optional (uniforms '())) (signal-let ((node node)) (if (mesh? node) - (draw-mesh node `(("mvp" ,transform))) + (draw-mesh node `(("mvp" ,transform) + ,@uniforms)) (let ((transform (transform* transform (if (scene-node-dirty? node) (recompute-transform! node alpha) (scene-node-transform node))))) (signal-let ((children (scene-node-children node))) - (for-each (cut draw-scene-node <> alpha transform) children)))))) + (for-each (cut draw-scene-node <> alpha transform + (scene-node-uniforms node)) + children)))))) -- cgit v1.2.3