Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fullscreen Now Has a 1-Pixel-Wide Grey Border #97435

Closed
Pixelmusement opened this issue Sep 25, 2024 · 3 comments
Closed

Fullscreen Now Has a 1-Pixel-Wide Grey Border #97435

Pixelmusement opened this issue Sep 25, 2024 · 3 comments
Labels

Comments

@Pixelmusement
Copy link

Tested versions

  • Reproducible In: v4.3.stable.steam [77dcf97]
  • Not Reproducible In: All stable v4.2 releases and prior

System information

Windows 10, GeForce GTX 1070 GPU

Issue description

Since updating from Godot 4.2 to 4.3, there is now a one-pixel-wide border present in any project I run using standard Fullscreen. This border is normally grey but sometimes changing the default clear colour will change the border colour to match, but this doesn't happen in EVERY project, only some projects, and I don't have a clue why.

The problem is present regardless of using either Vulkan or D3D12, but ONLY shows up in standard Fullscreen. Windowed modes and Exclusive Fullscreen do not exhibit this problem. This weird border also shows up during the default Godot splash screen as a program is starting. Changing the various border and window project settings has no effect on this. This happens regardless of a project being presented in 2D or 3D.

Steps to reproduce

  1. Run ANY project from the editor with the window mode set to "Fullscreen".

Minimal reproduction project (MRP)

  1. Create a new project.
  2. Make a 2D scene root.
  3. Open Project Settings and set the Default Clear Colour to black and the window mode to Fullscreen.
  4. Run the project. There should be a grey border around the edge of your screen.
@bruvzg
Copy link
Member

bruvzg commented Sep 25, 2024

See #63500

TLDR:

  • This is intentional and done to ensure multiwindow interface works in fullscreen (MODE_FULLSCREEN is only intended for GUI apps like Godot editor itself, not for games).
  • For everything else, use MODE_EXCLUSIVE_FULLSCREEN (naming is bad, this mode is fully equivalent to 3.x MODE_FULLSCREEN).
  • I'm pretty sure it is the same in 4.2 (and other 4.x), but border was always black, now it's using clear color from project settings.
  • We probably can hack around it, but it's not fully tested - [Windows] Remove visible WINDOW_MODE_FULLSCREEN border by setting window region. #88852

@Pixelmusement
Copy link
Author

OK, I see now from reading the documentation that this is intentional, but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window, which a lot of games implement for compatibility reasons, thus making me slightly confused why this mode has now become specifically for multi-window support and that the border has been made a non-negotiable feature of it. I guess my choices now are to either offer a borderless fullscreen option in my Godot-made projects and get complaints of a border around the screen, or not offer the option and get complaints as to why the only fullscreen option is exclusive fullscreen. This addition/change to the Godot engine really doesn't feel like it was handled appropriately and I hope this new border becomes an optional aspect of the non-exclusive fullscreen mode in the near future.

@Pixelmusement Pixelmusement closed this as not planned Won't fix, can't repro, duplicate, stale Sep 25, 2024
@bruvzg
Copy link
Member

bruvzg commented Sep 25, 2024

but prior to v4.2 it's pointed out that MODE_FULLSCREEN is effectively the equivalent to a borderless fullscreen window

It never reliably worked as borderless fullscreen.

3.x was single windowed and had only one fullscreen mode (equivalent to current MODE_EXCLUSIVE_FULLSCREEN, this mode is simply removing window border and window size to the screen size).

4.0 added support for multiple windows and start having issues with multi-window editor in fullscreen, so it was spirit into two modes. Naming of the new modes clearly was a mistake (should be MULTIWINDOW_FULLSCREEN/FULLSCREEN not FULLSCREEN/EXCLUSIVE_FULLSCREEN). The primary goal was always to make the editor (multi-window) to work in fullscreen. Initially it was done by changing window style flags, but turned out that some GPU drivers (NVIDIA in particular) still switch to exclusive mode (it seems to only care about client area size), so the border was added to guarantee in is not. Now it is confusing mess, but we can't just rename it since it's going to break compatibility.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants