From 06060434ed8b1acac971f47f4a4f79246ad3ab1e Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sat, 9 Dec 2023 14:09:57 +0100 Subject: [PATCH] Document Fullscreen vs Exclusive Fullscreen window mode for integer scaling --- tutorials/rendering/jitter_stutter.rst | 12 ++++++++++++ tutorials/rendering/multiple_resolutions.rst | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/tutorials/rendering/jitter_stutter.rst b/tutorials/rendering/jitter_stutter.rst index 42890d124..c06cc6363 100644 --- a/tutorials/rendering/jitter_stutter.rst +++ b/tutorials/rendering/jitter_stutter.rst @@ -98,6 +98,18 @@ games, will usually not exhibit this problem anyway). For fullscreen, Windows gives special priority to the game so stutter is no longer visible and very rare. This is how most games are played. +.. tip:: + + Games should use the **Exclusive Fullscreen** window mode, as opposed to + **Fullscreen** which is designed to prevent Windows from automatically + treating the window as if it was exclusive fullscreen. + + **Fullscreen** is meant to be used by GUI applications that want to use + per-pixel transparency without a risk of having it disabled by the OS. It + achieves this by leaving a 1-pixel line at the bottom of the screen. By + contrast, **Exclusive Fullscreen** uses the actual screen size and allows + Windows to reduce jitter and input lag for fullscreen games. + Linux ^^^^^ diff --git a/tutorials/rendering/multiple_resolutions.rst b/tutorials/rendering/multiple_resolutions.rst index fc14c5bc3..caff9a9ac 100644 --- a/tutorials/rendering/multiple_resolutions.rst +++ b/tutorials/rendering/multiple_resolutions.rst @@ -328,6 +328,22 @@ that have a pixel art UI, so that the visible area in the 3D viewport doesn't reduce in size (which occurs when using ``canvas_items`` or ``viewport`` stretch mode with the ``integer`` scale mode). +.. tip:: + + Games should use the **Exclusive Fullscreen** window mode, as opposed to + **Fullscreen** which is designed to prevent Windows from automatically + treating the window as if it was exclusive fullscreen. + + **Fullscreen** is meant to be used by GUI applications that want to use + per-pixel transparency without a risk of having it disabled by the OS. It + achieves this by leaving a 1-pixel line at the bottom of the screen. By + contrast, **Exclusive Fullscreen** uses the actual screen size and allows + Windows to reduce jitter and input lag for fullscreen games. + + When using integer scaling, this is particularly important as the 1-pixel + height reduction from the **Fullscreen** mode can cause integer scaling to + use a smaller scale factor than expected. + Common use case scenarios -------------------------