From: jsancho Date: Sun, 18 Oct 2009 20:27:53 +0000 (+0000) Subject: (no commit message) X-Git-Url: https://git.jsancho.org/?a=commitdiff_plain;h=8caa865a3194eb573382a411df7636ebb472ca1f;p=gacela.git --- diff --git a/gacela.lisp b/gacela.lisp index 6ad199f..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) diff --git a/gacela_FTGL.lisp b/gacela_FTGL.lisp index d1b0d19..8fa2bd0 100644 --- a/gacela_FTGL.lisp +++ b/gacela_FTGL.lisp @@ -17,6 +17,16 @@ (in-package :gacela) +(defmacro mapcconst (type c-type name) + (let ((c-header (concatenate 'string c-type " gacela_" name " (void)")) + (c-body (concatenate 'string "return " name ";")) + (c-name (concatenate 'string "gacela_" name)) + (lisp-name (intern (string-upcase name)))) + `(progn + (defcfun ,c-header 0 ,c-body) + (defentry ,lisp-name () (,type ,c-name)) + (eval-when (load) (defconstant ,lisp-name (,lisp-name)))))) + (clines "#include ") (mapcconst int "int" "ft_encoding_unicode") diff --git a/gacela_GL.lisp b/gacela_GL.lisp index 8b532f3..c293bf5 100644 --- a/gacela_GL.lisp +++ b/gacela_GL.lisp @@ -17,6 +17,16 @@ (in-package :gacela) +(defmacro mapcconst (type c-type name) + (let ((c-header (concatenate 'string c-type " gacela_" name " (void)")) + (c-body (concatenate 'string "return " name ";")) + (c-name (concatenate 'string "gacela_" name)) + (lisp-name (intern (string-upcase name)))) + `(progn + (defcfun ,c-header 0 ,c-body) + (defentry ,lisp-name () (,type ,c-name)) + (eval-when (load) (defconstant ,lisp-name (,lisp-name)))))) + (clines "#include ") (clines "#include ") diff --git a/gacela_SDL.lisp b/gacela_SDL.lisp index af72bf1..6ff5c1b 100644 --- a/gacela_SDL.lisp +++ b/gacela_SDL.lisp @@ -17,6 +17,16 @@ (in-package :gacela) +(defmacro mapcconst (type c-type name) + (let ((c-header (concatenate 'string c-type " gacela_" name " (void)")) + (c-body (concatenate 'string "return " name ";")) + (c-name (concatenate 'string "gacela_" name)) + (lisp-name (intern (string-upcase name)))) + `(progn + (defcfun ,c-header 0 ,c-body) + (defentry ,lisp-name () (,type ,c-name)) + (eval-when (load) (defconstant ,lisp-name (,lisp-name)))))) + (clines "#include ") (clines "#include ") (clines "#include ") diff --git a/gacela_draw.lisp b/gacela_draw.lisp index 31790da..c984948 100644 --- a/gacela_draw.lisp +++ b/gacela_draw.lisp @@ -34,6 +34,14 @@ ,@code (apply #'set-current-color original-color))) +(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 draw (&rest vertexes) (begin-draw (length vertexes)) (draw-vertexes vertexes) @@ -101,15 +109,17 @@ key))))))) (defun draw-image-function (filename) - (multiple-value-bind - (texture width height) (load-texture filename) - (lambda (&optional (f 1)) - (cond (texture - (draw-rectangle (* f width) (* f height) :texture texture)))))) + (let ((texture (load-texture filename))) + (lambda (&optional (f 1)) + (cond (texture + (let ((width (getf (get-resource texture) :width)) + (height (getf (get-resource texture) :height))) +(print texture) + (draw-rectangle (* f width) (* f height) :texture texture))))))) (defun draw-quad (v1 v2 v3 v4 &key texture) (cond (texture (progn-textures - (glBindTexture GL_TEXTURE_2D (getf texture :id-texture)) + (glBindTexture GL_TEXTURE_2D (getf (get-resource texture) :id-texture)) (begin-draw 4) (draw-vertex v1 :texture-coord '(0 0)) (draw-vertex v2 :texture-coord '(1 0)) diff --git a/gacela_misc.lisp b/gacela_misc.lisp index 419181b..8a7c2e4 100755 --- a/gacela_misc.lisp +++ b/gacela_misc.lisp @@ -69,16 +69,6 @@ (t (power (* p 2) n))))) (power 1 n))) -(defmacro mapcconst (type c-type name) - (let ((c-header (concatenate 'string c-type " gacela_" name " (void)")) - (c-body (concatenate 'string "return " name ";")) - (c-name (concatenate 'string "gacela_" name)) - (lisp-name (intern (string-upcase name)))) - `(progn - (defcfun ,c-header 0 ,c-body) - (defentry ,lisp-name () (,type ,c-name)) - (eval-when (load) (defconstant ,lisp-name (,lisp-name)))))) - ;Geometry (defun dotp (dot) (match-pattern dot '(0 0))) diff --git a/gacela_tetris.lisp b/gacela_tetris.lisp index ef56ed2..a89d138 100644 --- a/gacela_tetris.lisp +++ b/gacela_tetris.lisp @@ -104,7 +104,7 @@ (timer (make-timer)) (grid (make-list 20 :initial-element (make-list 14))) (background (draw-image-function "fondo_tetris.png")) - (font (open-font "lazy.ttf"))) + (font (load-font "lazy.ttf"))) (defun tetramine () (cond ((eq (timer-state timer) 'stopped) (start-timer timer))) diff --git a/gacela_ttf.lisp b/gacela_ttf.lisp index 931f3c8..3cb8493 100644 --- a/gacela_ttf.lisp +++ b/gacela_ttf.lisp @@ -35,4 +35,4 @@ key)))) (defun render-text (text font) - (ftglRenderFont (getf font :id-font) text FTGL_RENDER_ALL)) + (ftglRenderFont (getf (get-resource font) :id-font) text FTGL_RENDER_ALL))