]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Sun, 18 Oct 2009 20:27:53 +0000 (20:27 +0000)
committerjsancho <devnull@localhost>
Sun, 18 Oct 2009 20:27:53 +0000 (20:27 +0000)
gacela.lisp
gacela_FTGL.lisp
gacela_GL.lisp
gacela_SDL.lisp
gacela_draw.lisp
gacela_misc.lisp
gacela_tetris.lisp
gacela_ttf.lisp

index 6ad199f314623426210e823ef26e4555b20a1391..eecc4893ee41e5196887514e79932e302bb571d8 100644 (file)
   (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))
          (make-resource :plist plist
                         :constructor constructor
                         :destructor destructor
-                        :free-function free-function
                         :time (if static t (SDL_GetTicks)))))
 
   (defun get-resource (key)
index d1b0d19978c26ea2427ac2502de44a1da3b99bc5..8fa2bd02fa625e9491fdf04b5ed1e5da2299a0f4 100644 (file)
 
 (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 <FTGL/ftgl.h>")
 
 (mapcconst int "int" "ft_encoding_unicode")
index 8b532f33e7f3a21022e8cfe76081d074f9e20eda..c293bf58cbb5739fe20c6a8de3db6e2e5a85b3b8 100644 (file)
 
 (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 <GL/gl.h>")
 (clines "#include <GL/glu.h>")
 
index af72bf1712de85475736ad3b046331c3f3fef505..6ff5c1b02278dbe9d5860fc920329b0af771f0d3 100644 (file)
 
 (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 <SDL/SDL.h>")
 (clines "#include <SDL/SDL_image.h>")
 (clines "#include <SDL/SDL_ttf.h>")
index 31790dabbb8c2de7d0e512ca4e2af42405403511..c984948fbbfa351a9aab7bd0cfc4dba3390d85d7 100644 (file)
      ,@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)
               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))
index 419181b7680236407ec82526a376eb1e475466c9..8a7c2e433242b551ee3fbc6c2c229d142aaf436a 100755 (executable)
                        (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)))
index ef56ed2faaa53c406bdd4c9e08729fb822cce762..a89d138e2970f9634c2eb70e7b7a3a7a10eff6fe 100644 (file)
       (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)))
 
index 931f3c89ba2b688ecceab160975915916e042abf..3cb84932e975b4303fcd72dbb52cd85e69897eff 100644 (file)
@@ -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))