From 27f3b120dcc56778f996eb03128bc803d132bbf2 Mon Sep 17 00:00:00 2001 From: BirDt_ Date: Tue, 28 Apr 2026 20:09:08 +0800 Subject: [PATCH] Basic resources --- engine/resource.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 engine/resource.scm diff --git a/engine/resource.scm b/engine/resource.scm new file mode 100644 index 0000000..8400856 --- /dev/null +++ b/engine/resource.scm @@ -0,0 +1,25 @@ +(module (engine resource) () +(import scheme + (chicken base) + (chicken gc) + raylib + (srfi 99)) + +(define-record-type + (int:make-resource type struct) + resource? + (type int:resource-type) + (struct int:resource-contents)) + +(define (resource-finalizer type) + (case type + ((font) unload-font) + (else identity))) + +(define (make-resource type struct) + (assert (member type '(texture font))) + (assert (record? struct)) + (let ((r (int:make-resource type struct))) + (set-finalizer! r (lambda (x) ((resource-finalizer type) x))))) + +)