summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Thompson <dthompson2@worcester.edu>2019-01-06 00:00:53 -0500
committerDavid Thompson <dthompson2@worcester.edu>2019-01-06 00:04:34 -0500
commitb7580bbfe01d634247c4caf8f0a81c7460c435a6 (patch)
tree9a02c030aa6cd2a31d0a7bb6771ffdc75bc0a906
parente0ee9c2ce9fdee7ce6ed5bfc29e9271555255e18 (diff)
render: texture: Fix error when splitting certain textures.
The split-texture procedure would throw an exception in the event that the image width/height could not be divided by tile width/height with 0 remainder. * chickadee/render/texture.scm (split-texture): Floor the results of dividing image dimensions by tile dimensions and ensure they are exact integers.
-rw-r--r--chickadee/render/texture.scm6
1 files changed, 2 insertions, 4 deletions
diff --git a/chickadee/render/texture.scm b/chickadee/render/texture.scm
index 3b1cb04..f225770 100644
--- a/chickadee/render/texture.scm
+++ b/chickadee/render/texture.scm
@@ -313,10 +313,8 @@ This type of texture atlas layout is very common for tile map
terrain."
(let* ((w (texture-width texture))
(h (texture-height texture))
- (sw (/ tile-width w))
- (th (/ tile-height h))
- (rows (/ (- h margin) (+ tile-height spacing)))
- (columns (/ (- w margin) (+ tile-width spacing)))
+ (rows (inexact->exact (floor (/ (- h margin) (+ tile-height spacing)))))
+ (columns (inexact->exact (floor (/ (- w margin) (+ tile-width spacing)))))
(v (make-vector (* rows columns))))
(define (make-tile tx ty)
(let* ((x (+ (* tx (+ tile-width spacing)) margin))