]> git.jsancho.org Git - gacela.git/blobdiff - src/gacela.scm
Gacela as Guile modules.
[gacela.git] / src / gacela.scm
index 0de0b7b33bb1e5bd08d57f930355d870b26ccec0..52b0442f5b9f79d3056a0dde572b79e740bdbcb9 100644 (file)
 ;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
+(define-module (gacela gacela)
+  #:use-module (gacela events)
+  #:use-module (gacela video)
+  #:use-module (gacela audio)
+  #:use-module (ice-9 optargs)
+  #:export ())
+
+
 ;;; Default values for Gacela
 
 (define *title* "Gacela")
 (define *mode* '2d)
 
 
-;;; Audio Subsystem
-
-(define init-audio #f)
-(define quit-audio #f)
-
-(let ((audio #f))
-  (set! init-audio
-       (lambda ()
-         (cond ((not audio) (begin (init-sdl) (set! audio (Mix_OpenAudio 22050 MIX_DEFAULT_FORMAT 2 4096))))
-               (else audio))))
-
-  (set! quit-audio
-       (lambda ()
-         (Mix_CloseAudio)
-         (set! audio #f))))
-
-
 ;;; Resources Cache
 
 (define resources-cache (make-weak-value-hash-table))
 
-(define get-resource-from-cache #f)
-(define insert-resource-into-cache #f)
+(define from-cache #f)
+(define into-cache #f)
 
 (let ()
-  (set! get-resource-from-cache
+  (set! from-cache
        (lambda (key)
          (hash-ref resources-cache key)))
 
-  (set! insert-resource-into-cache
+  (set! into-cache
        (lambda (key res)
          (hash-set! resources-cache key res))))
 
+(define-macro (use-cache-with-procedure proc-name)
+  `(begin
+     (define ,(string->symbol (string-concatenate (list (symbol->string proc-name) "-without-cache"))) ,proc-name)))
+
+
 ;;; GaCeLa Functions
 
 (define set-frames-per-second #f)