X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=dfa7a4f73cd1af11b0cffa925416f02e14ba9b19;hb=68d1418be737276c8214780106399c0dae588d1c;hp=98225eae1d4c4bff71a029823facd8bdae9a98e4;hpb=3d81daa33f1c59045b731ea422b5cd5505b7048e;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 98225eae..dfa7a4f7 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -24,6 +24,8 @@ #include "windows.h" #elif defined(PLATFORM_MSDOS) #include "msdos.h" +#elif defined(PLATFORM_ANDROID) +#include "android.h" #endif #if defined(TARGET_SDL) @@ -45,9 +47,19 @@ #define BLIT_INVERSE 2 #define BLIT_ON_BACKGROUND 3 +/* values for fullscreen status */ #define FULLSCREEN_NOT_AVAILABLE FALSE #define FULLSCREEN_AVAILABLE TRUE +/* values for window scaling */ +#define WINDOW_SCALING_NOT_AVAILABLE FALSE +#define WINDOW_SCALING_AVAILABLE TRUE + +#define MIN_WINDOW_SCALING_PERCENT 50 +#define STD_WINDOW_SCALING_PERCENT 100 +#define MAX_WINDOW_SCALING_PERCENT 300 +#define STEP_WINDOW_SCALING_PERCENT 10 + /* default input keys */ #define DEFAULT_KEY_LEFT KSYM_Left #define DEFAULT_KEY_RIGHT KSYM_Right @@ -644,16 +656,22 @@ /* type definitions */ +#if defined(TARGET_SDL2) +typedef int (*EventFilter)(void *, Event *); +#else typedef int (*EventFilter)(const Event *); +#endif /* structure definitions */ struct ProgramInfo { - char *command_basepath; /* directory that contains the program */ + char *command_basepath; /* path to the program binary */ char *command_basename; /* base filename of the program binary */ + char *maindata_path; /* main game data (installation) directory */ + char *userdata_subdir; /* personal user game data directory */ char *userdata_subdir_unix; /* personal user game data directory (Unix) */ char *userdata_path; /* resulting full path to game data directory */ @@ -677,6 +695,7 @@ struct ProgramInfo int version_minor; int version_patch; + void (*exit_message_function)(char *, va_list); void (*exit_function)(int); }; @@ -714,11 +733,16 @@ struct VideoSystemInfo { int default_depth; int width, height, depth; + int window_width, window_height; boolean fullscreen_available; boolean fullscreen_enabled; + boolean fullscreen_initial; struct ScreenModeInfo *fullscreen_modes; char *fullscreen_mode_current; + + boolean window_scaling_available; + int window_scaling_percent; }; struct AudioSystemInfo @@ -928,6 +952,7 @@ struct SetupInfo boolean time_limit; boolean fullscreen; char *fullscreen_mode; + int window_scaling_percent; boolean ask_on_escape; boolean ask_on_escape_editor; boolean quick_switch; @@ -1216,6 +1241,9 @@ extern DrawBuffer *drawto; extern int button_status; extern boolean motion_status; +#if defined(TARGET_SDL2) +extern boolean keyrepeat_status; +#endif extern int redraw_mask; extern int redraw_tiles; @@ -1228,6 +1256,7 @@ extern int FrameCounter; void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, char *, int); +void InitExitMessageFunction(void (*exit_message_function)(char *, va_list)); void InitExitFunction(void (*exit_function)(int)); void InitPlatformDependentStuff(void); void ClosePlatformDependentStuff(void);