From 0a86dd4718d159f597e17f0b5107b7a9fa776b75 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Wed, 29 Dec 2021 02:21:06 +0100 Subject: [PATCH] Enable "Allow Hidpi" by default This fixes window management issues across platforms on hiDPI monitors. The `--low-dpi` command line argument has been removed as similar functionality (forcing low-DPI mode on DPI-aware programs) is already provided by Windows and macOS itself. --- doc/classes/ProjectSettings.xml | 5 +++-- main/main.cpp | 9 +-------- misc/dist/shell/_godot.zsh-completion | 1 - misc/dist/shell/godot.bash-completion | 1 - misc/dist/shell/godot.fish | 1 - 5 files changed, 4 insertions(+), 13 deletions(-) diff --git a/doc/classes/ProjectSettings.xml b/doc/classes/ProjectSettings.xml index 26d519506b39..9bd5910da1ed 100644 --- a/doc/classes/ProjectSettings.xml +++ b/doc/classes/ProjectSettings.xml @@ -480,8 +480,9 @@ Position offset for tooltips, relative to the mouse cursor's hotspot. - - If [code]true[/code], allows HiDPI display on Windows, macOS, and the HTML5 platform. This setting has no effect on desktop Linux, as DPI-awareness fallbacks are not supported there. + + If [code]true[/code], allows HiDPI display on Windows, macOS, Android, iOS and HTML5. If [code]false[/code], the platform's low-DPI fallback will be used on HiDPI displays, which causes the window to be displayed in a blurry or pixelated manner (and can cause various window management bugs). Therefore, it is recommended to make your project scale to [url=$DOCS_URL/tutorials/viewports/multiple_resolutions.html]multiple resolutions[/url] instead of disabling this setting. + [b]Note:[/b] This setting has no effect on Linux as DPI-awareness fallbacks are not supported there. If [code]true[/code], keeps the screen on (even in case of inactivity), so the screensaver does not take over. Works on desktop and mobile platforms. diff --git a/main/main.cpp b/main/main.cpp index 9b7f960660ca..f40cb9b142ff 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -164,7 +164,6 @@ static bool init_windowed = false; static bool init_always_on_top = false; static bool init_use_custom_pos = false; static Vector2 init_custom_pos; -static bool force_lowdpi = false; // Debug @@ -340,7 +339,6 @@ void Main::print_help(const char *p_binary) { OS::get_singleton()->print(" -t, --always-on-top Request an always-on-top window.\n"); OS::get_singleton()->print(" --resolution x Request window resolution.\n"); OS::get_singleton()->print(" --position , Request window position.\n"); - OS::get_singleton()->print(" --low-dpi Force low-DPI mode (macOS and Windows only).\n"); OS::get_singleton()->print(" --single-window Use a single window (no separate subwindows).\n"); OS::get_singleton()->print(" --tablet-driver Pen tablet input driver.\n"); OS::get_singleton()->print("\n"); @@ -870,9 +868,6 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph goto error; } - } else if (I->get() == "--low-dpi") { // force low DPI (macOS only) - - force_lowdpi = true; } else if (I->get() == "--headless") { // enable headless mode (no audio, no rendering). audio_driver = "Dummy"; @@ -1365,9 +1360,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph GLOBAL_DEF("internationalization/rendering/force_right_to_left_layout_direction", false); GLOBAL_DEF("internationalization/locale/include_text_server_data", false); - if (!force_lowdpi) { - OS::get_singleton()->_allow_hidpi = GLOBAL_DEF("display/window/dpi/allow_hidpi", false); - } + OS::get_singleton()->_allow_hidpi = GLOBAL_DEF("display/window/dpi/allow_hidpi", true); // FIXME: Restore support. #if 0 diff --git a/misc/dist/shell/_godot.zsh-completion b/misc/dist/shell/_godot.zsh-completion index 8f42c3a1a2aa..09747b9e83a8 100644 --- a/misc/dist/shell/_godot.zsh-completion +++ b/misc/dist/shell/_godot.zsh-completion @@ -49,7 +49,6 @@ _arguments \ '(-t --always-on-top)'{-t,--always-on-top}'[request an always-on-top window]' \ '--resolution[request window resolution]:resolution in WxH format' \ '--position[request window position]:position in X,Y format' \ - '--low-dpi[force low-DPI mode (macOS and Windows only)]' \ '--headless[enable headless mode (--display-driver headless --audio-driver Dummy). Useful for servers and with --script]' \ '(-d --debug)'{-d,--debug}'[debug (local stdout debugger)]' \ '(-b --breakpoints)'{-b,--breakpoints}'[specify the breakpoint list as source::line comma-separated pairs, no spaces (use %20 instead)]:breakpoint list' \ diff --git a/misc/dist/shell/godot.bash-completion b/misc/dist/shell/godot.bash-completion index 0a31c545e1e4..a93f148f751c 100644 --- a/misc/dist/shell/godot.bash-completion +++ b/misc/dist/shell/godot.bash-completion @@ -52,7 +52,6 @@ _complete_godot_options() { --always-on-top --resolution --position ---low-dpi --headless --debug --breakpoints diff --git a/misc/dist/shell/godot.fish b/misc/dist/shell/godot.fish index b44762c4ab10..7aea721b0313 100644 --- a/misc/dist/shell/godot.fish +++ b/misc/dist/shell/godot.fish @@ -59,7 +59,6 @@ complete -c godot -s w -l windowed -d "Request windowed mode" complete -c godot -s t -l always-on-top -d "Request an always-on-top window" complete -c godot -l resolution -d "Request window resolution" -x complete -c godot -l position -d "Request window position" -x -complete -c godot -l low-dpi -d "Force low-DPI mode (macOS and Windows only)" complete -c godot -l headless -d "Enable headless mode (--display-driver headless --audio-driver Dummy). Useful for servers and with --script" # Debug options: