summaryrefslogtreecommitdiff
path: root/sly/render/model.scm
diff options
context:
space:
mode:
Diffstat (limited to 'sly/render/model.scm')
-rw-r--r--sly/render/model.scm35
1 files changed, 17 insertions, 18 deletions
diff --git a/sly/render/model.scm b/sly/render/model.scm
index 3cc310a..77c550e 100644
--- a/sly/render/model.scm
+++ b/sly/render/model.scm
@@ -31,12 +31,12 @@
#:use-module (sly math transform)
#:use-module (sly math vector)
#:use-module (sly math rect)
+ #:use-module (sly render)
#:use-module (sly render shader)
#:use-module (sly render texture)
#:use-module (sly render utils)
#:use-module (sly render camera)
#:use-module (sly render color)
- #:use-module (sly render context)
#:use-module (sly render mesh)
#:export (make-model
model
@@ -139,10 +139,9 @@ changing the fields specified in KWARGS."
(define draw-sub-scene
(delay (module-ref (resolve-interface '(sly render scene)) 'draw-scene)))
-(define (draw-model model view context)
+(define (draw-model model view gfx)
"Render MODEL by applying its transform (multiplied by VIEW), texture,
-shader, vertex array, uniforms, blend mode, etc. to the render
-CONTEXT."
+shader, vertex array, uniforms, blend mode, etc. using GFX."
(match model
((? model-null? _)
*unspecified*)
@@ -150,20 +149,20 @@ CONTEXT."
depth-test? sub-scene children)
(when sub-scene
- (with-render-context-excursion context
- ((force draw-sub-scene) sub-scene context)))
-
- (with-transform-excursion context
- (render-context-transform*! context local-transform)
- (with-transform-excursion context
- (render-context-transform*! context view)
- (set-render-context-depth-test?! context depth-test?)
- (set-render-context-blend-mode! context blend-mode)
- (set-render-context-shader! context shader)
- (set-render-context-mesh! context mesh)
- (set-render-context-texture! context texture)
+ (with-graphics-excursion gfx
+ ((force draw-sub-scene) sub-scene gfx)))
+
+ (with-transform-excursion gfx
+ (graphics-transform-mul! gfx local-transform)
+ (with-transform-excursion gfx
+ (graphics-transform-mul! gfx view)
+ (set-graphics-depth-test! gfx depth-test?)
+ (set-graphics-blend-mode! gfx blend-mode)
+ (set-graphics-shader! gfx shader)
+ (set-graphics-mesh! gfx mesh)
+ (set-graphics-texture! gfx texture)
;; TODO: Support user-defined uniforms.
- (uniform-set! shader "mvp" (render-context-transform context))
+ (uniform-set! shader "mvp" (graphics-transform gfx))
(uniform-set! shader "color" color)
(uniform-set! shader "use_texture" (not (texture-null? texture)))
(glDrawElements (begin-mode triangles)
@@ -171,7 +170,7 @@ CONTEXT."
(data-type unsigned-int)
%null-pointer))
(for-each (lambda (child)
- (draw-model child view context))
+ (draw-model child view gfx))
children)))))
;;;