]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Tue, 16 Aug 2011 19:20:58 +0000 (19:20 +0000)
committerjsancho <devnull@localhost>
Tue, 16 Aug 2011 19:20:58 +0000 (19:20 +0000)
src/gacela.scm
src/gacela_GL.c
src/gacela_SDL.c
src/gacela_draw.scm

index 6a0b50126870a0d3dae4dfbb3c9fd4b00021e49a..dba48e6376ddc887bcad5f58732ec192cfd72904 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)
 
index da64a2eb55a24beeefca0be78365b7b0d94b8edb..541e4abea16e17d4e1ce7f1ec72e55a78abd46ad 100644 (file)
@@ -417,6 +417,7 @@ GL_register_functions (void* data)
   // Blending
   scm_c_define ("GL_BLEND", scm_from_int (GL_BLEND));
   scm_c_define ("GL_ONE", scm_from_int (GL_ONE));
+  scm_c_define ("GL_ONE_MINUS_SRC_ALPHA", scm_from_int (GL_ONE_MINUS_SRC_ALPHA));
   scm_c_define ("GL_SRC_ALPHA", scm_from_int (GL_SRC_ALPHA));
 
   // Fog
index 79774444e00acb4caef88de9e842d4057e036b16..f7f4151be78b2b5d4b4b3ef59adb18cf6bb0458a 100644 (file)
@@ -214,6 +214,12 @@ gacela_SDL_SetColorKey (SCM surface, SCM flag, SCM key)
   return scm_from_int (SDL_SetColorKey (get_surface_address (surface), scm_to_int (flag), scm_to_int (key)));
 }
 
+SCM
+gacela_SDL_SetAlpha (SCM surface, SCM flag, SCM alpha)
+{
+  return scm_from_int (SDL_SetAlpha (get_surface_address (surface), scm_to_int (flag), scm_to_int (alpha)));
+}
+
 SCM
 gacela_SDL_LoadBMP (SCM file)
 {
@@ -479,6 +485,7 @@ SDL_register_functions (void* data)
   scm_c_define_gsubr ("SDL_DisplayFormat", 1, 0, 0, gacela_SDL_DisplayFormat);
   scm_c_define_gsubr ("SDL_MapRGB", 4, 0, 0, gacela_SDL_MapRGB);
   scm_c_define_gsubr ("SDL_SetColorKey", 3, 0, 0, gacela_SDL_SetColorKey);
+  scm_c_define_gsubr ("SDL_SetAlpha", 3, 0, 0, gacela_SDL_SetAlpha);
   scm_c_define_gsubr ("SDL_LoadBMP", 1, 0, 0, gacela_SDL_LoadBMP);
   scm_c_define_gsubr ("IMG_Load", 1, 0, 0, gacela_IMG_Load);
   scm_c_define_gsubr ("SDL_GetVideoInfo", 0, 0, 0, gacela_SDL_GetVideoInfo);
index 184eba20b76348094b64ed3b1cc18b12737c16fa..5fbc92e6f65e2c7f6e2da579861f97da276b56fa 100644 (file)
@@ -63,6 +63,7 @@
   (init-sdl)
   (let ((image (IMG_Load filename)))
     (cond (image
+          (SDL_SetAlpha image 0 0)
           (let* ((width (surface-w image)) (height (surface-h image))
                  (power-2 (nearest-power-of-two (min width height)))
                  (resized-image #f))
@@ -85,8 +86,8 @@
     (cond (image
           (let ((width (surface-w image)) (height (surface-h image))
                 (byteorder (if (= SDL_BYTEORDER SDL_LIL_ENDIAN)
-                               (if (= (surface-format-BytesPerPixel image) 3) GL_BGR GL_BGRA)
-                               (if (= (surface-format-BytesPerPixel image) 3) GL_RGB GL_RGBA)))
+                               (if (= (surface-format-BytesPerPixel image) 3) GL_RGB GL_RGBA)
+                               (if (= (surface-format-BytesPerPixel image) 3) GL_BGR GL_BGRA)))
                 (texture (car (glGenTextures 1))))
 
             (glBindTexture GL_TEXTURE_2D texture)