rnd-20140127-1-src
[rocksndiamonds.git] / src / libgame / system.h
index 9f997cf16d63d7f6d4603389a880b7f67b259cfe..9ec6e757a34ee7946ca309f58e3a62d0f59c5e03 100644 (file)
 #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
+
+/* values for window scaling quality */
+#define SCALING_QUALITY_NEAREST                "nearest"
+#define SCALING_QUALITY_LINEAR         "linear"
+#define SCALING_QUALITY_BEST           "best"
+
+#define SCALING_QUALITY_DEFAULT                SCALING_QUALITY_LINEAR
+
 /* default input keys */
 #define DEFAULT_KEY_LEFT               KSYM_Left
 #define DEFAULT_KEY_RIGHT              KSYM_Right
@@ -723,11 +740,17 @@ 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;
+  char *window_scaling_quality;
 };
 
 struct AudioSystemInfo
@@ -937,6 +960,8 @@ struct SetupInfo
   boolean time_limit;
   boolean fullscreen;
   char *fullscreen_mode;
+  int window_scaling_percent;
+  char *window_scaling_quality;
   boolean ask_on_escape;
   boolean ask_on_escape_editor;
   boolean quick_switch;
@@ -1182,6 +1207,7 @@ struct TextPosInfo
   int size;
   int font, font_alt;
   boolean draw_masked;
+  boolean draw_player;         /* special case for network player buttons */
   int sort_priority;
   int id;
 };
@@ -1259,6 +1285,8 @@ void SetWindowBackgroundBitmap(Bitmap *);
 void SetMainBackgroundBitmap(Bitmap *);
 void SetDoorBackgroundBitmap(Bitmap *);
 
+void LimitScreenUpdates(boolean);
+
 void InitVideoDisplay(void);
 void CloseVideoDisplay(void);
 void InitVideoBuffer(int, int, int, boolean);