X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsdl.h;h=58434681112f608d782529a098675d8e4c0f403d;hp=3b3266178c56aed9820ace30e8e7d0bc2b76b1d7;hb=64e7c54dce6ea8c063f04198c64c5057d751c928;hpb=30512b15037dcc2cd5056fb328f1bc93b6d03394 diff --git a/src/libgame/sdl.h b/src/libgame/sdl.h index 3b326617..58434681 100644 --- a/src/libgame/sdl.h +++ b/src/libgame/sdl.h @@ -21,7 +21,7 @@ #include #endif -/* definitions needed for "system.c" */ +// definitions needed for "system.c" #if defined(TARGET_SDL2) #define SURFACE_FLAGS (0) @@ -37,7 +37,7 @@ #define UNSET_TRANSPARENT_PIXEL (0) #endif -/* system dependent definitions */ +// system dependent definitions #if defined(TARGET_SDL2) #define TARGET_STRING "SDL2" @@ -56,17 +56,11 @@ #define FULLSCREEN_STATUS FULLSCREEN_AVAILABLE #endif -#if defined(TARGET_SDL2) -#define USE_FINAL_SCREEN_BITMAP FALSE -#else -#define USE_FINAL_SCREEN_BITMAP TRUE -#endif - #define CURSOR_MAX_WIDTH 32 #define CURSOR_MAX_HEIGHT 32 -/* SDL type definitions */ +// SDL type definitions typedef struct SDLSurfaceInfo Bitmap; typedef struct SDLSurfaceInfo DrawBuffer; @@ -86,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; @@ -97,7 +92,7 @@ typedef SDL_Event FocusChangeEvent; typedef SDL_Event ClientMessageEvent; -/* structure definitions */ +// structure definitions struct SDLSurfaceInfo { @@ -122,7 +117,7 @@ struct MouseCursorInfo }; -/* SDL symbol definitions */ +// SDL symbol definitions #define None 0L @@ -133,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 @@ -203,8 +199,14 @@ struct MouseCursorInfo #define KSYM_Page_Down SDLK_PAGEDOWN #if defined(TARGET_SDL2) +#define KSYM_Select SDLK_SELECT #define KSYM_Menu SDLK_MENU #define KSYM_Back SDLK_AC_BACK +#define KSYM_PlayPause SDLK_AUDIOPLAY +#if defined(PLATFORM_ANDROID) +#define KSYM_Rewind SDLK_AUDIOREWIND +#define KSYM_FastForward SDLK_AUDIOFASTFORWARD +#endif #endif #define KSYM_space SDLK_SPACE @@ -216,7 +218,7 @@ struct MouseCursorInfo #if defined(TARGET_SDL2) #define KSYM_percent SDLK_PERCENT #else -#define KSYM_percent 37 /* undefined in SDL */ +#define KSYM_percent 37 // undefined in SDL #endif #define KSYM_ampersand SDLK_AMPERSAND @@ -245,11 +247,11 @@ struct MouseCursorInfo #define KSYM_underscore SDLK_UNDERSCORE #define KSYM_grave SDLK_BACKQUOTE -#define KSYM_quoteleft KSYM_UNDEFINED /* undefined */ -#define KSYM_braceleft KSYM_UNDEFINED /* undefined */ -#define KSYM_bar KSYM_UNDEFINED /* undefined */ -#define KSYM_braceright KSYM_UNDEFINED /* undefined */ -#define KSYM_asciitilde KSYM_UNDEFINED /* undefined */ +#define KSYM_quoteleft KSYM_UNDEFINED // undefined +#define KSYM_braceleft KSYM_UNDEFINED // undefined +#define KSYM_bar KSYM_UNDEFINED // undefined +#define KSYM_braceright KSYM_UNDEFINED // undefined +#define KSYM_asciitilde KSYM_UNDEFINED // undefined #if defined(TARGET_SDL2) #define KSYM_degree 176 @@ -428,11 +430,17 @@ struct MouseCursorInfo #define KMOD_Meta (KMOD_Meta_L | KMOD_Meta_R) #define KMOD_Alt (KMOD_Alt_L | KMOD_Alt_R) +// this only contains "valid" key modifiers (and ignores keys like "NumLock") +#define KMOD_Valid (KMOD_Shift | \ + KMOD_Control | \ + KMOD_Meta | \ + KMOD_Alt) + #if defined(TARGET_SDL2) #define KMOD_TextInput (KMOD_Shift | KMOD_Alt_R) #endif -/* SDL function definitions */ +// SDL function definitions boolean SDLSetNativeSurface(SDL_Surface **); SDL_Surface *SDLGetNativeSurface(SDL_Surface *); @@ -444,9 +452,15 @@ 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 SDLSetScreenVsyncMode(char *); +void SDLRedrawWindow(void); void SDLSetWindowTitle(void); void SDLLimitScreenUpdates(boolean); @@ -458,7 +472,7 @@ 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); @@ -477,11 +491,19 @@ void SDLSetMouseCursor(struct MouseCursorInfo *); void SDLOpenAudio(void); void SDLCloseAudio(void); -void SDLNextEvent(Event *); +void SDLWaitEvent(Event *); void SDLHandleWindowManagerEvent(Event *); void HandleJoystickEvent(Event *); void SDLInitJoysticks(void); boolean SDLReadJoystick(int, int *, int *, boolean *, boolean *); +boolean SDLCheckJoystickOpened(int); +void SDLClearJoystickState(void); +boolean SDLOpenJoystick(int); +void SDLCloseJoystick(int); + +void PrepareFadeBitmap(int); + +void Delay_WithScreenUpdates(unsigned int); -#endif /* SDL_H */ +#endif // SDL_H