Add a setting to disable DPI scaling on Windows systems

This commit is contained in:
Oliver Brakmann
2017-04-14 16:45:14 +02:00
parent 81fe19ca4a
commit 0635f3636d
2 changed files with 5 additions and 2 deletions

View File

@@ -120,6 +120,9 @@ namespace OpenRA
[Desc("At which frames per second to cap the framerate.")]
public int MaxFramerate = 60;
[Desc("Disable high resolution DPI scaling on Windows operating systems.")]
public bool DisableWindowsDPIScaling = false;
public int BatchSize = 8192;
public int SheetSize = 2048;

View File

@@ -40,7 +40,7 @@ namespace OpenRA.Platforms.Default
WindowSize = windowSize;
// Disable legacy scaling on Windows
if (Platform.CurrentPlatform == PlatformType.Windows)
if (Platform.CurrentPlatform == PlatformType.Windows && !Game.Settings.Graphics.DisableWindowsDPIScaling)
SetProcessDPIAware();
SDL.SDL_Init(SDL.SDL_INIT_NOPARACHUTE | SDL.SDL_INIT_VIDEO);
@@ -82,7 +82,7 @@ namespace OpenRA.Platforms.Default
else if (Platform.CurrentPlatform == PlatformType.Windows)
{
float ddpi, hdpi, vdpi;
if (SDL.SDL_GetDisplayDPI(0, out ddpi, out hdpi, out vdpi) == 0)
if (!Game.Settings.Graphics.DisableWindowsDPIScaling && SDL.SDL_GetDisplayDPI(0, out ddpi, out hdpi, out vdpi) == 0)
{
WindowScale = ddpi / 96;
WindowSize = new Size((int)(SurfaceSize.Width / WindowScale), (int)(SurfaceSize.Height / WindowScale));