]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Tue, 21 Sep 2010 06:20:34 +0000 (06:20 +0000)
committerjsancho <devnull@localhost>
Tue, 21 Sep 2010 06:20:34 +0000 (06:20 +0000)
gacela_SDL.lisp
gacela_draw.lisp

index 5dd383eefed4f661033d5ea479c8ee4e3b36831b..1d113aa0bb04ad8a2734baca6f46d77a48090786 100644 (file)
   "const SDL_Surface *s = surface;"
   "return s->format->BytesPerPixel;")
 
-(defcfun "int gacela_resize_surface (int surface, int width, int height)" 0
-  "const SDL_Surface *s = surface;"
-  "if (s->w == width && s->h == height) {"
-  "  return s;"
-  "} else {"
-  "  return zoomSurface (s, width / s->w, height / s->h, 0);"
-  "}")
-
 ;(defentry apply-surface2 (int int int int int int int int int) (void "apply_surface"))
 ;(defentry render-text2 (int string int int int) (int "render_text"))
 ;(defentry box-collision (int int int int int int) (int "box_collision"))
 (defentry surface-h (int) (int "gacela_surface_h"))
 (defentry surface-pixels (int) (int "gacela_surface_pixels"))
 (defentry surface-format-BytesPerPixel (int) (int "gacela_surface_format_BytesPerPixel"))
-(defentry resize-surface (int int int) (int "gacela_resize_surface"))
index 01181701575221b2b0dce1777b5e31bb32f99f56..559412b8b7f386712ecf4b55f1e38564ac5b84a3 100644 (file)
                      (SDL_FreeSurface image)
                      (cond ((/= resized-image 0) (values resized-image width height))))))))))
 
+(defun resize-surface (surface width height)
+  (let ((old-width (surface-w surface)) (old-height (surface-h surface)))
+    (cond ((and (= width old-width) (= height old-height)) surface)
+         (t (let ((zoomx (/ (+ width 0.5) old-width)) (zoomy (/ (+ height 0.5) old-height)))
+              (zoomSurface surface zoomx zoomy 0))))))
+
 (defun load-texture (filename &key (min-filter GL_LINEAR) (mag-filter GL_LINEAR) static)
   (let ((key (make-resource-texture :filename filename :min-filter min-filter :mag-filter mag-filter)))
     (cond ((get-resource key) key)