X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=b74b6fae17165e376d7da80d6a22a8752e0fc7c2;hb=f6513d7bc5806904a55708a2ddb6673842e933bd;hp=abb63b591e70c039d3dface2849e1abb5b0d05d1;hpb=a7c06161253796a30a0237a7f5a044f459c8cf35;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index abb63b59..b74b6fae 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -60,6 +60,13 @@ #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 @@ -310,12 +317,18 @@ #define REDRAWTILES_THRESHOLD 0 #endif -#define IN_GFX_SCREEN(x, y) (x >= gfx.sx && x < gfx.sx + gfx.sxsize && \ +#define IN_GFX_FIELD_PLAY(x, y) (x >= gfx.sx && x < gfx.sx + gfx.sxsize && \ y >= gfx.sy && y < gfx.sy + gfx.sysize) -#define IN_GFX_DOOR(x, y) (x >= gfx.dx && x < gfx.dx + gfx.dxsize && \ +#define IN_GFX_FIELD_FULL(x, y) (x >= gfx.real_sx && \ + x < gfx.real_sx + gfx.full_sxsize && \ + y >= gfx.real_sy && \ + y < gfx.real_sy + gfx.full_sysize) +#define IN_GFX_DOOR_1(x, y) (x >= gfx.dx && x < gfx.dx + gfx.dxsize && \ y >= gfx.dy && y < gfx.dy + gfx.dysize) -#define IN_GFX_VIDEO(x, y) (x >= gfx.vx && x < gfx.vx + gfx.vxsize && \ +#define IN_GFX_DOOR_2(x, y) (x >= gfx.vx && x < gfx.vx + gfx.vxsize && \ y >= gfx.vy && y < gfx.vy + gfx.vysize) +#define IN_GFX_DOOR_3(x, y) (x >= gfx.ex && x < gfx.ex + gfx.exsize && \ + y >= gfx.ey && y < gfx.ey + gfx.eysize) /* values for mouse cursor */ #define CURSOR_DEFAULT 0 @@ -743,6 +756,7 @@ struct VideoSystemInfo boolean window_scaling_available; int window_scaling_percent; + char *window_scaling_quality; }; struct AudioSystemInfo @@ -796,6 +810,9 @@ struct GfxInfo int vx, vy; int vxsize, vysize; + int ex, ey; + int exsize, eysize; + int win_xsize, win_ysize; int draw_deactivation_mask; @@ -953,6 +970,7 @@ struct SetupInfo 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; @@ -1190,6 +1208,19 @@ struct MenuPosInfo int align, valign; }; +struct DoorPartPosInfo +{ + int x, y; + int step_xoffset; + int step_yoffset; + int step_delay; + int start_step; + int start_step_opening; + int start_step_closing; + boolean draw_masked; + int sort_priority; +}; + struct TextPosInfo { int x, y; @@ -1265,6 +1296,7 @@ void ClosePlatformDependentStuff(void); void InitGfxFieldInfo(int, int, int, int, int, int, int, int, Bitmap *); void InitGfxDoor1Info(int, int, int, int); void InitGfxDoor2Info(int, int, int, int); +void InitGfxDoor3Info(int, int, int, int); void InitGfxWindowInfo(int, int); void InitGfxScrollbufferInfo(int, int); void InitGfxClipRegion(boolean, int, int, int, int); @@ -1276,6 +1308,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);