]> git.jsancho.org Git - gacela.git/blobdiff - src/gacela.scm
(no commit message)
[gacela.git] / src / gacela.scm
index 6a0b50126870a0d3dae4dfbb3c9fd4b00021e49a..f14b837bdd956ca859d84a9e70d2b2a7d1681cbd 100644 (file)
   (glClearColor 0 0 0 0)
 ;  (glClearDepth 1)
 ;  (glDepthFunc GL_LEQUAL)
-;  (glEnable GL_BLEND)
+  (glEnable GL_BLEND)
 ;  (glBlendFunc GL_SRC_ALPHA GL_ONE)
+  (glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA)
   (glHint GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST)
   #t)
 
          (set! audio #f))))
 
 
+;;; Resources Cache
+
+(define resources-cache (make-weak-value-hash-table))
+
+
 ;;; GaCeLa Functions
 
 (define set-frames-per-second #f)
                   (SDL_Delay (- time-per-frame frame-time))))))))
 
 
-(define set-game-properties #f)
+(define set-game-properties! #f)
 (define get-game-properties #f)
 
 (let ((ptitle *title*) (pwidth *width-screen*) (pheight *height-screen*) (pbpp *bpp-screen*) (pfps *frames-per-second*) (pmode *mode*))
-  (set! set-game-properties
+  (set! set-game-properties!
        (lambda* (#:key title width height bpp fps mode)
 ;        (init-video-mode)
          (if title
                          (glClear (+ GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT))
                          (to-origin)))
                   (cond ((mobs-changed?) (set! mobs (get-active-mobs))))
-                  (if (procedure? game-code) (game-code))
-                  (run-mob-actions mobs)
+                  (if (procedure? game-code)
+                      (catch #t
+                             (lambda () (game-code))
+                             (lambda (key . args) #f)))
                   (cond ((video-mode-on?)
-                         (render-mobs mobs)
+                         (run-mobs mobs)
                          (SDL_GL_SwapBuffers)))
                   (delay-frame))))
          (set! running #f)))