added support for special media buttons on Amazon Fire TV remote control
[rocksndiamonds.git] / src / libgame / sdl.h
index 79827b4501dc6247076dc4dd1385378d813ca1be..838be3ad467ca6e96cbd5293fbb8e3428b740fe8 100644 (file)
 #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
@@ -82,6 +80,7 @@ typedef SDL_Event             Event;
 typedef SDL_MouseButtonEvent   ButtonEvent;
 typedef SDL_MouseMotionEvent   MotionEvent;
 #if defined(TARGET_SDL2)
+typedef SDL_MouseWheelEvent    WheelEvent;
 typedef SDL_TouchFingerEvent   FingerEvent;
 typedef SDL_TextInputEvent     TextEvent;
 typedef SDL_Event              PauseResumeEvent;
@@ -102,6 +101,10 @@ struct SDLSurfaceInfo
   int width, height;
   SDL_Surface *surface;
   SDL_Surface *surface_masked;
+#if defined(TARGET_SDL2)
+  SDL_Texture *texture;
+  SDL_Texture *texture_masked;
+#endif
 };
 
 struct MouseCursorInfo
@@ -125,6 +128,7 @@ struct MouseCursorInfo
 #define EVENT_BUTTONRELEASE    SDL_MOUSEBUTTONUP
 #define EVENT_MOTIONNOTIFY     SDL_MOUSEMOTION
 #if defined(TARGET_SDL2)
+#define        EVENT_WHEELMOTION       SDL_MOUSEWHEEL
 #define        EVENT_FINGERPRESS       SDL_FINGERDOWN
 #define EVENT_FINGERRELEASE    SDL_FINGERUP
 #define EVENT_FINGERMOTION     SDL_FINGERMOTION
@@ -197,6 +201,11 @@ struct MouseCursorInfo
 #if defined(TARGET_SDL2)
 #define KSYM_Menu              SDLK_MENU
 #define KSYM_Back              SDLK_AC_BACK
+#define KSYM_PlayPause         SDLK_AUDIOPLAY
+#if defined(PLATFORM_ANDROID)
+#define KSYM_Rewind            SDLK_AUDIORWND
+#define KSYM_FastForward       SDLK_AUDIOFFWD
+#endif
 #endif
 
 #define KSYM_space             SDLK_SPACE
@@ -428,26 +437,34 @@ struct MouseCursorInfo
 
 boolean SDLSetNativeSurface(SDL_Surface **);
 SDL_Surface *SDLGetNativeSurface(SDL_Surface *);
+void SDLCreateBitmapTextures(Bitmap *);
+void SDLFreeBitmapTextures(Bitmap *);
 
 #if defined(TARGET_SDL2)
 SDL_Surface *SDL_DisplayFormat(SDL_Surface *);
 void SDLSetWindowScaling(int);
 void SDLSetWindowScalingQuality(char *);
 void SDLSetWindowFullscreen(boolean);
-void SDLRedrawWindow();
+void SDLSetDisplaySize(void);
+void SDLSetScreenSizeAndOffsets(int, int);
+void SDLSetScreenSizeForRenderer(int, int);
+void SDLSetScreenProperties(void);
 #endif
 
+void SDLSetScreenRenderingMode(char *);
+void SDLRedrawWindow();
 void SDLSetWindowTitle(void);
 
 void SDLLimitScreenUpdates(boolean);
 void SDLInitVideoDisplay(void);
-void SDLInitVideoBuffer(DrawBuffer **, DrawWindow **, boolean);
-boolean SDLSetVideoMode(DrawBuffer **, boolean);
+void SDLInitVideoBuffer(boolean);
+boolean SDLSetVideoMode(boolean);
 void SDLCreateBitmapContent(Bitmap *, int, int, int);
 void SDLFreeBitmapPointers(Bitmap *);
 void SDLCopyArea(Bitmap *, Bitmap *, int, int, int, int, int, int, int);
+void SDLBlitTexture(Bitmap *, int, int, int, int, int, int, int);
 void SDLFillRectangle(Bitmap *, int, int, int, int, Uint32);
-void SDLFadeRectangle(Bitmap *, int, int, int, int, int, int, int,
+void SDLFadeRectangle(int, int, int, int, int, int, int,
                      void (*draw_border_function)(void));
 void SDLDrawSimpleLine(Bitmap *, int, int, int, int, Uint32);
 void SDLDrawLine(Bitmap *, int, int, int, int, Uint32);
@@ -472,5 +489,8 @@ void SDLHandleWindowManagerEvent(Event *);
 void HandleJoystickEvent(Event *);
 void SDLInitJoysticks(void);
 boolean SDLReadJoystick(int, int *, int *, boolean *, boolean *);
+boolean SDLCheckJoystickOpened(int);
+
+void PrepareFadeBitmap(int);
 
 #endif /* SDL_H */