added support for setting alpha value for global animations
[rocksndiamonds.git] / src / libgame / sdl.h
index c49894f6836deb17a4ad7f0a883cfbc3da74a3fb..31de93da084907c5cb7871d98d74433822ee35bf 100644 (file)
@@ -4,7 +4,7 @@
 // (c) 1995-2014 by Artsoft Entertainment
 //                         Holger Schemel
 //                 info@artsoft.org
-//                 http://www.artsoft.org/
+//                 https://www.artsoft.org/
 // ----------------------------------------------------------------------------
 // sdl.h
 // ============================================================================
 #include <SDL_mixer.h>
 #include <SDL_net.h>
 #include <SDL_thread.h>
-#if defined(PLATFORM_WIN32)
+#if defined(PLATFORM_WINDOWS)
 #include <SDL_syswm.h>
 #endif
 
 // definitions needed for "system.c"
 
-#define SURFACE_FLAGS          (0)
+#define SURFACE_FLAGS          (SDL_WINDOW_RESIZABLE)
 
 #define SET_TRANSPARENT_PIXEL  (SDL_TRUE)
 #define UNSET_TRANSPARENT_PIXEL        (SDL_FALSE)
@@ -75,6 +75,10 @@ struct SDLSurfaceInfo
   char *source_filename;
 
   int width, height;
+
+  int alpha[2][2];             // [surface|texture][opaque|masked]
+  int alpha_next_blit;
+
   SDL_Surface *surface;
   SDL_Surface *surface_masked;
   SDL_Texture *texture;
@@ -350,6 +354,12 @@ typedef struct UserEventInfo       UserEvent;
 #define KSYM_FKEY_LAST         KSYM_F12
 #define KSYM_NUM_FKEYS         (KSYM_FKEY_LAST - KSYM_FKEY_FIRST + 1)
 
+#define KSYM_RAW(k)            (((k) >= KSYM_a &&                      \
+                                 (k) <= KSYM_z)        ||              \
+                                ((k) >= KSYM_0 &&                      \
+                                 (k) <= KSYM_9)        ||              \
+                                (k) == KSYM_space)
+
 #define KSYM_PRINTABLE(k)      (((k) >= KSYM_space &&                  \
                                  (k) <= KSYM_z)        ||              \
                                 (k) == KSYM_Adiaeresis ||              \
@@ -380,8 +390,13 @@ typedef struct UserEventInfo       UserEvent;
                                 KMOD_Meta    | \
                                 KMOD_Alt)
 
+#define KMOD_TextInput         (KMOD_Shift | KMOD_Alt_R)
+
+
 // SDL function definitions
 
+void SDLSetAlpha(SDL_Surface *, boolean, int);
+const char *SDLGetRendererName(void);
 boolean SDLSetNativeSurface(SDL_Surface **);
 SDL_Surface *SDLGetNativeSurface(SDL_Surface *);
 void SDLCreateBitmapTextures(Bitmap *);
@@ -417,7 +432,6 @@ void SDLDrawLine(Bitmap *, int, int, int, int, Uint32);
 Pixel SDLGetPixel(Bitmap *, int, int);
 void SDLPutPixel(Bitmap *, int, int, Pixel);
 
-void SDLInvertArea(Bitmap *, int, int, int, int, Uint32);
 void SDLCopyInverseMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 
 Bitmap *SDLZoomBitmap(Bitmap *, int, int);