summaryrefslogtreecommitdiff
path: root/chickadee/render/sprite.scm
diff options
context:
space:
mode:
Diffstat (limited to 'chickadee/render/sprite.scm')
-rw-r--r--chickadee/render/sprite.scm90
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)