fixed some bugs and added some speed when scaling in-game tile size
[rocksndiamonds.git] / src / libgame / sdl.h
index 254b9927166fc33d126911e9898c49b803610369..ef2cfd25e243a7085e96e50de988fc358d5c4861 100644 (file)
 #define TARGET_STRING          "SDL"
 #endif
 
+#if defined(PLATFORM_ANDROID)
+#define WINDOW_SCALING_STATUS  WINDOW_SCALING_NOT_AVAILABLE
 #define FULLSCREEN_STATUS      FULLSCREEN_AVAILABLE
+#define USE_DESKTOP_FULLSCREEN TRUE
+#elif defined(TARGET_SDL2)
+#define WINDOW_SCALING_STATUS  WINDOW_SCALING_AVAILABLE
+#define FULLSCREEN_STATUS      FULLSCREEN_AVAILABLE
+#define USE_DESKTOP_FULLSCREEN TRUE
+#else  // SDL 1.2
+#define WINDOW_SCALING_STATUS  WINDOW_SCALING_NOT_AVAILABLE
+#define FULLSCREEN_STATUS      FULLSCREEN_AVAILABLE
+#endif
 
 #define CURSOR_MAX_WIDTH       32
 #define CURSOR_MAX_HEIGHT      32
@@ -75,6 +86,8 @@ typedef SDL_MouseMotionEvent  MotionEvent;
 #if defined(TARGET_SDL2)
 typedef SDL_TouchFingerEvent   FingerEvent;
 typedef SDL_TextInputEvent     TextEvent;
+typedef SDL_Event              PauseResumeEvent;
+typedef SDL_WindowEvent                WindowEvent;
 #endif
 typedef SDL_KeyboardEvent      KeyEvent;
 typedef SDL_Event              ExposeEvent;
@@ -201,7 +214,13 @@ struct MouseCursorInfo
 #define KSYM_quotedbl          SDLK_QUOTEDBL
 #define KSYM_numbersign                SDLK_HASH
 #define KSYM_dollar            SDLK_DOLLAR
-#define KSYM_percent           KSYM_UNDEFINED          /* undefined */
+
+#if defined(TARGET_SDL2)
+#define KSYM_percent           SDLK_PERCENT
+#else
+#define KSYM_percent           37                      /* undefined in SDL */
+#endif
+
 #define KSYM_ampersand         SDLK_AMPERSAND
 #define KSYM_apostrophe                SDLK_QUOTE
 #define KSYM_parenleft         SDLK_LEFTPAREN
@@ -411,13 +430,26 @@ struct MouseCursorInfo
 #define KMOD_Meta              (KMOD_Meta_L    | KMOD_Meta_R)
 #define KMOD_Alt               (KMOD_Alt_L     | KMOD_Alt_R)
 
+#if defined(TARGET_SDL2)
+#define KMOD_TextInput         (KMOD_Shift | KMOD_Alt_R)
+#endif
 
 /* SDL function definitions */
 
+boolean SDLSetNativeSurface(SDL_Surface **);
+SDL_Surface *SDLGetNativeSurface(SDL_Surface *);
+
 #if defined(TARGET_SDL2)
 SDL_Surface *SDL_DisplayFormat(SDL_Surface *);
+void SDLSetWindowScaling(int);
+void SDLSetWindowScalingQuality(char *);
+void SDLSetWindowFullscreen(boolean);
+void SDLRedrawWindow();
 #endif
 
+void SDLSetWindowTitle(void);
+
+void SDLLimitScreenUpdates(boolean);
 void SDLInitVideoDisplay(void);
 void SDLInitVideoBuffer(DrawBuffer **, DrawWindow **, boolean);
 boolean SDLSetVideoMode(DrawBuffer **, boolean);
@@ -435,7 +467,11 @@ void SDLPutPixel(Bitmap *, int, int, Pixel);
 void SDLInvertArea(Bitmap *, int, int, int, int, Uint32);
 void SDLCopyInverseMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 
+#if 1
+Bitmap *SDLZoomBitmap(Bitmap *, int, int);
+#else
 void SDLZoomBitmap(Bitmap *, Bitmap *);
+#endif
 
 Bitmap *SDLLoadImage(char *);