X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=gacela.lisp;h=eecc4893ee41e5196887514e79932e302bb571d8;hb=4fe9bd9e78b0e3cee1133da2abcb05bc98322b31;hp=3f75376d1027ea30daabcee77c35d8fbaf9264bc;hpb=18b7b395aeba9aabdd47c52a0ae6bcd7d0f78f00;p=gacela.git diff --git a/gacela.lisp b/gacela.lisp index 3f75376..eecc489 100644 --- a/gacela.lisp +++ b/gacela.lisp @@ -81,14 +81,6 @@ (glHint GL_PERSPECTIVE_CORRECTION_HINT GL_NICEST) t) -(defmacro progn-textures (&body code) - `(let (values) - (init-video-mode) - (glEnable GL_TEXTURE_2D) - (setq values (multiple-value-list (progn ,@code))) - (glDisable GL_TEXTURE_2D) - (apply #'values values))) - (defun init-lighting () (init-video-mode) (glEnable GL_LIGHTING)) @@ -171,7 +163,6 @@ (make-resource :plist plist :constructor constructor :destructor destructor - :free-function free-function :time (if static t (SDL_GetTicks))))) (defun get-resource (key) @@ -182,10 +173,12 @@ (setf (gethash key resources-table) resource))) (resource-plist resource))))) + (defun free-resource (key) + (funcall (resource-destructor (gethash key resources-table))) + (setf (resource-time (gethash key resources-table)) nil)) + (defun free-all-resources () - (maphash (lambda (key res) (funcall (resource-free-function res) (resource-address res))) - resources-table) - (clrhash resources-table))) + (maphash (lambda (key res) (free-resource key)) resources-table))) ;;; Connection with the GUI