diff options
Diffstat (limited to 'sly/render/sprite-batch.scm')
-rw-r--r-- | sly/render/sprite-batch.scm | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/sly/render/sprite-batch.scm b/sly/render/sprite-batch.scm index 8b59cb3..fe17f42 100644 --- a/sly/render/sprite-batch.scm +++ b/sly/render/sprite-batch.scm @@ -174,26 +174,24 @@ (graphics-texture-excursion context (lambda (context) (set-graphics-texture! context (sprite-batch-texture batch)) - (graphics-model-view-excursion context + (graphics-uniform-excursion context + `((model ,(graphics-model-transform context)) + (view ,(graphics-view-transform context)) + (projection ,(graphics-projection-transform context)) + (texture? ,(not (texture-null? (graphics-texture context))))) (lambda (context) - (graphics-model-view-mul! context - (graphics-projection-transform context)) - (graphics-uniform-excursion context - `((mvp ,(graphics-model-view-transform context)) - (texture? ,(not (texture-null? (graphics-texture context))))) - (lambda (context) - (unmap-vertex-buffer! (sprite-batch-index-buffer batch)) - (unmap-vertex-buffer! (sprite-batch-position-buffer batch)) - (unmap-vertex-buffer! (sprite-batch-texture-buffer batch)) - - (set-graphics-mesh! context (sprite-batch-mesh batch)) - (glDrawElements (begin-mode triangles) - ;; 6 indices per sprite. - (* (sprite-batch-size batch) 6) - (data-type unsigned-int) - %null-pointer) - - (sprite-batch-reset! batch))))))))) + (unmap-vertex-buffer! (sprite-batch-index-buffer batch)) + (unmap-vertex-buffer! (sprite-batch-position-buffer batch)) + (unmap-vertex-buffer! (sprite-batch-texture-buffer batch)) + + (set-graphics-mesh! context (sprite-batch-mesh batch)) + (glDrawElements (begin-mode triangles) + ;; 6 indices per sprite. + (* (sprite-batch-size batch) 6) + (data-type unsigned-int) + %null-pointer) + + (sprite-batch-reset! batch))))))) (define-syntax-rule (with-sprite-batch batch context body ...) ;; IMPORTANT! We need to make sure that the current VAO is unbound |