Merge branch 'master' into global-anims
[rocksndiamonds.git] / src / libgame / sdl.h
index a69e235085587cc4b149e6086e0ca27bc5cdc2a3..121b15bf65769f6fad34e2fe02565ea2bfbe0145 100644 (file)
@@ -1,15 +1,13 @@
-/***********************************************************
-* Artsoft Retro-Game Library                               *
-*----------------------------------------------------------*
-* (c) 1994-2006 Artsoft Entertainment                      *
-*               Holger Schemel                             *
-*               Detmolder Strasse 189                      *
-*               33604 Bielefeld                            *
-*               Germany                                    *
-*               e-mail: info@artsoft.org                   *
-*----------------------------------------------------------*
-* sdl.h                                                    *
-***********************************************************/
+// ============================================================================
+// Artsoft Retro-Game Library
+// ----------------------------------------------------------------------------
+// (c) 1995-2014 by Artsoft Entertainment
+//                         Holger Schemel
+//                 info@artsoft.org
+//                 http://www.artsoft.org/
+// ----------------------------------------------------------------------------
+// sdl.h
+// ============================================================================
 
 #ifndef SDL_H
 #define SDL_H
@@ -60,6 +58,8 @@
 #define FULLSCREEN_STATUS      FULLSCREEN_AVAILABLE
 #endif
 
+#define USE_FINAL_SCREEN_BITMAP        FALSE
+
 #define CURSOR_MAX_WIDTH       32
 #define CURSOR_MAX_HEIGHT      32
 
@@ -86,6 +86,7 @@ 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;
@@ -93,12 +94,6 @@ typedef SDL_Event            ExposeEvent;
 typedef SDL_Event              FocusChangeEvent;
 typedef SDL_Event              ClientMessageEvent;
 
-typedef int                    GC;
-typedef int                    Pixmap;
-typedef int                    Display;
-typedef int                    Visual;
-typedef int                    Colormap;
-
 
 /* structure definitions */
 
@@ -109,8 +104,10 @@ struct SDLSurfaceInfo
   int width, height;
   SDL_Surface *surface;
   SDL_Surface *surface_masked;
-  GC gc;
-  GC stored_clip_gc;
+#if defined(TARGET_SDL2)
+  SDL_Texture *texture;
+  SDL_Texture *texture_masked;
+#endif
 };
 
 struct MouseCursorInfo
@@ -435,15 +432,21 @@ struct MouseCursorInfo
 
 /* SDL function definitions */
 
+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 SDLSetWindowTitle(void);
 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);
@@ -451,6 +454,7 @@ boolean SDLSetVideoMode(DrawBuffer **, 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 (*draw_border_function)(void));
@@ -462,7 +466,7 @@ void SDLPutPixel(Bitmap *, int, int, Pixel);
 void SDLInvertArea(Bitmap *, int, int, int, int, Uint32);
 void SDLCopyInverseMasked(Bitmap *, Bitmap *, int, int, int, int, int, int);
 
-void SDLZoomBitmap(Bitmap *, Bitmap *);
+Bitmap *SDLZoomBitmap(Bitmap *, int, int);
 
 Bitmap *SDLLoadImage(char *);