From 1bbdaf63cbf1b747abe34b71a367861cbb751b73 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 23 Nov 2014 20:45:30 -0500 Subject: render: Draw methods now accept a 'transform' parameter. * sly/render/renderer.scm (transform-render-op): Delete. * sly/render/scene.scm (scene->renderer): Update usage of 'draw' method. * sly/render/mesh.scm (draw): Add 'transform' parameter. --- sly/render/mesh.scm | 3 ++- sly/render/renderer.scm | 9 --------- sly/render/scene.scm | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/sly/render/mesh.scm b/sly/render/mesh.scm index 2aca38f..0f6a2b0 100644 --- a/sly/render/mesh.scm +++ b/sly/render/mesh.scm @@ -58,8 +58,9 @@ (%make-mesh (make-vertex-array indices positions textures) shader texture)) -(define-method (draw (mesh <>)) +(define-method (draw (mesh <>) transform) (make-render-op #:vertex-array (mesh-vao mesh) #:texture (mesh-texture mesh) #:shader (mesh-shader mesh) + #:transform transform #:uniforms `(("color" ,white)))) diff --git a/sly/render/renderer.scm b/sly/render/renderer.scm index f4c5edd..bb8f297 100644 --- a/sly/render/renderer.scm +++ b/sly/render/renderer.scm @@ -71,15 +71,6 @@ activated or not." (%make-render-op transform vertex-array texture shader uniforms blend-mode depth-test?)) -(define* (transform-render-op op transform) - "Return a new render operation object that is the same as OP, but -with its transformation matrix multiplied by TRANSFORM." - (match op - (($ local-transform vertex-array texture shader uniforms - blend-mode depth-test?) - (%make-render-op (transform* transform local-transform) vertex-array - texture shader uniforms blend-mode depth-test?)))) - (define apply-render-op ;; Rendering should only ever happen from the main thread, so ;; mutating this transform is just fine. diff --git a/sly/render/scene.scm b/sly/render/scene.scm index 837bde8..333d60b 100644 --- a/sly/render/scene.scm +++ b/sly/render/scene.scm @@ -79,7 +79,7 @@ display the scene." (map (cut iter <> transform) (scene-node-children node))) '())) (object - (transform-render-op (draw object) parent-transform)))) + (draw object parent-transform)))) (make-renderer context (list camera) -- cgit v1.2.3