diff options
Diffstat (limited to 'chickadee/render/sprite.scm')
-rw-r--r-- | chickadee/render/sprite.scm | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/chickadee/render/sprite.scm b/chickadee/render/sprite.scm index c453a9d..f1b3515 100644 --- a/chickadee/render/sprite.scm +++ b/chickadee/render/sprite.scm @@ -81,25 +81,25 @@ void main (void) { #:stride stride #:usage 'stream))) (pos (delay - (make-typed-buffer #:name "unbatched sprite vertices" - #:buffer (force buffer) - #:type 'vec2 - #:component-type 'float - #:length 4))) + (make-buffer-view #:name "unbatched sprite vertices" + #:buffer (force buffer) + #:type 'vec2 + #:component-type 'float + #:length 4))) (tex (delay - (make-typed-buffer #:name "unbatched sprite texcoords" - #:buffer (force buffer) - #:type 'vec2 - #:component-type 'float - #:length 4 - #:offset 8))) + (make-buffer-view #:name "unbatched sprite texcoords" + #:buffer (force buffer) + #:type 'vec2 + #:component-type 'float + #:length 4 + #:offset 8))) (indices (delay - (make-typed-buffer #:name "unbatched sprite indices" - #:type 'scalar - #:component-type 'unsigned-int - #:buffer (make-buffer (u32vector 0 3 2 0 2 1) - #:target 'index)))) + (make-buffer-view #:name "unbatched sprite indices" + #:type 'scalar + #:component-type 'unsigned-int + #:buffer (make-buffer (u32vector 0 3 2 0 2 1) + #:target 'index)))) (vertex-array (delay (make-vertex-array #:indices (force indices) @@ -114,7 +114,7 @@ void main (void) { (tint white) (blend-mode 'alpha) (texcoords (texture-gl-tex-rect texture))) - (with-mapped-typed-buffer (force pos) + (with-mapped-buffer-view (force pos) (let* ((x1 (rect-x rect)) (y1 (rect-y rect)) (x2 (+ x1 (rect-width rect))) @@ -123,7 +123,7 @@ void main (void) { (t1 (rect-y texcoords)) (s2 (+ (rect-x texcoords) (rect-width texcoords))) (t2 (+ (rect-y texcoords) (rect-height texcoords))) - (bv (typed-buffer-data (force pos)))) + (bv (buffer-view-data (force pos)))) ;; Texture origin is at the top-left, so we need to flip the Y ;; coordinate relative to the vertices. (f32vector-set! bv 0 x1) @@ -206,46 +206,46 @@ BLEND-MODE." (let* ((index-data (let ((bv (make-u32vector (* capacity 6)))) (let loop ((i 0)) (when (< i capacity) - (let ((index-offset (* i 6)) - (vertex-offset (* i 4))) - (u32vector-set! bv index-offset vertex-offset) - (u32vector-set! bv (+ index-offset 1) (+ vertex-offset 3)) - (u32vector-set! bv (+ index-offset 2) (+ vertex-offset 2)) - (u32vector-set! bv (+ index-offset 3) vertex-offset) - (u32vector-set! bv (+ index-offset 4) (+ vertex-offset 2)) - (u32vector-set! bv (+ index-offset 5) (+ vertex-offset 1)) - (loop (+ i 1))))) + (let ((index-offset (* i 6)) + (vertex-offset (* i 4))) + (u32vector-set! bv index-offset vertex-offset) + (u32vector-set! bv (+ index-offset 1) (+ vertex-offset 3)) + (u32vector-set! bv (+ index-offset 2) (+ vertex-offset 2)) + (u32vector-set! bv (+ index-offset 3) vertex-offset) + (u32vector-set! bv (+ index-offset 4) (+ vertex-offset 2)) + (u32vector-set! bv (+ index-offset 5) (+ vertex-offset 1)) + (loop (+ i 1))))) bv)) (index-buffer (make-buffer index-data #:name "indices" #:target 'index)) - (indices (make-typed-buffer #:name "indices" - #:buffer index-buffer - #:type 'scalar - #:component-type 'unsigned-int)) + (indices (make-buffer-view #:name "indices" + #:buffer index-buffer + #:type 'scalar + #:component-type 'unsigned-int)) (stride 32) ; 8 f32s, 2 for vertex, 2 for texcoord, 4 for tint color (buffer (make-buffer #f #:name "sprite batch buffer" #:length (* capacity stride 4) #:stride stride #:usage 'stream)) - (pos (make-typed-buffer #:name "sprite batch vertices" + (pos (make-buffer-view #:name "sprite batch vertices" + #:buffer buffer + #:type 'vec2 + #:component-type 'float + #:length (* capacity 4))) + (tex (make-buffer-view #:name "sprite batch texture coordinates" + #:buffer buffer + #:type 'vec2 + #:component-type 'float + #:length (* capacity 4) + #:offset 8)) + (tint (make-buffer-view #:name "sprite batch tint colors" #:buffer buffer - #:type 'vec2 - #:component-type 'float - #:length (* capacity 4))) - (tex (make-typed-buffer #:name "sprite batch texture coordinates" - #:buffer buffer - #:type 'vec2 + #:type 'vec4 #:component-type 'float #:length (* capacity 4) - #:offset 8)) - (tint (make-typed-buffer #:name "sprite batch tint colors" - #:buffer buffer - #:type 'vec4 - #:component-type 'float - #:length (* capacity 4) - #:offset 16)) + #:offset 16)) (va (make-vertex-array #:indices indices #:attributes `((0 . ,pos) (1 . ,tex) |