diff --git a/mkxp.conf.sample b/mkxp.conf.sample index 9863eaf..ad1686f 100644 --- a/mkxp.conf.sample +++ b/mkxp.conf.sample @@ -150,6 +150,30 @@ # maxTextureSize=0 +# Scale up the game screen by an integer amount, +# as large as the current window size allows, before +# doing any last additional scalings to fill part or +# all of the remaining window space (or none at all +# if lastMileScaling is disabled). +# If fixedAspectRatio is disabled, the integer scale +# factors in horizontal and vertical direction can differ +# depending on how much space is available, otherwise +# they are forced to the smaller of the two. +# (default: disabled) +# +# integerScaling.active = false + + +# When integer scaling is enabled, this option controls +# whether the scaled game screen is further scaled +# (with linear interpolation when smoothScaling is enabled) +# to fill the rest of the game window. +# Note that this option still respects fixedAspectRatio. +# (default: enabled) +# +# integerScaling.lastMileScaling = true + + # Set the base path of the game to '/path/to/game' # (default: executable directory) # diff --git a/src/config.cpp b/src/config.cpp index 9742f9c..aee2517 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -170,6 +170,8 @@ void Config::read(int argc, char *argv[]) PO_DESC(subImageFix, bool, false) \ PO_DESC(enableBlitting, bool, true) \ PO_DESC(maxTextureSize, int, 0) \ + PO_DESC(integerScaling.active, bool, false) \ + PO_DESC(integerScaling.lastMileScaling, bool, true) \ PO_DESC(gameFolder, std::string, ".") \ PO_DESC(anyAltToggleFS, bool, false) \ PO_DESC(enableReset, bool, true) \ diff --git a/src/config.h b/src/config.h index 967e1b0..2925a99 100644 --- a/src/config.h +++ b/src/config.h @@ -59,6 +59,12 @@ struct Config bool enableBlitting; int maxTextureSize; + struct + { + bool active; + bool lastMileScaling; + } integerScaling; + std::string gameFolder; bool anyAltToggleFS; bool enableReset;