memory leak slowed but still unacceptable

This commit is contained in:
mehbark 2023-12-24 00:51:02 -05:00
parent 710bcdd2ce
commit 2658e75183

View file

@ -67,7 +67,8 @@
(foreign-procedure #f "BeginDrawing" () void))
(define end-drawing
(foreign-procedure #f "EndDrawing" () void))
; doesn't help, but i'm pretty sure this *is* collect safe
(foreign-procedure __collect_safe "EndDrawing" () void))
; timing
(define set-target-fps
@ -172,10 +173,11 @@
(vector2-x b))
(+ (vector2-y a)
(vector2-y b))))
(define vector2-origin (vector2 0 0))
(define (vector2+ . vs)
(fold-left vector2+-bin
(vector2 0 0)
vector2-origin
vs))
; mouse
@ -584,13 +586,6 @@
(square-flagged?-set! mouse-square (not (square-flagged? mouse-square))))
redraw?)
(define (draw-game-squares game skin pos)
(game-squares-for-each
(lambda (x y)
(let ([pos (vector2+ pos (vector2 (* x square-width) (* y square-width)))])
(blit-square skin (game-square-type-at game x y) pos)))
game))
(define (draw-write obj x y size color)
(draw-text (with-output-to-string (lambda () (write obj)))
x y size color))
@ -640,11 +635,19 @@
(draw-write `(middle released . ,(button-released? 'middle)) 1 90 10 color)
(draw-write `(right released . ,(button-released? 'right)) 1 100 10 color))
(define (draw-game-squares game skin pos)
(game-squares-for-each
(lambda (x y)
(let ([pos (vector2 (+ (vector2-x pos) (* x square-width))
(+ (vector2-y pos) (* y square-width)))])
(blit-square skin (game-square-type-at game x y) pos)))
game))
(define (game-draw game skin)
(draw-game-squares game skin (vector2 0 0)))
(draw-game-squares game skin vector2-origin))
; draw-game-over as a separate thing would be nice
; the game shows -99 when you (- num-mines num-flagged) is less than -99
; the game shows -99 when (- num-mines num-flagged) is less than -99
(define (run-game mines width height)
(init-window (* width square-width) (* height square-width) "mineschemer")
(set-target-fps 60)
@ -662,7 +665,9 @@
; this saves a lot of resources
(when (game-tick! game)
; something leaks memory. huh!
(clear-background BLACK)
; methinks it's all those foreign vector2s
; seems so
;; (clear-background BLACK)
(game-draw game skin))
#;(draw-mouse-info BLACK)
))