summaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorRiteo <riteo@posteo.net>2024-05-10 01:44:57 +0200
committerRiteo <riteo@posteo.net>2024-08-21 06:31:19 +0200
commit56eb272e9078bb11486ef38c35bdc05a5636341f (patch)
tree298a74cca1ae7938cf3124753a7c8f83744294c9 /main
parent62de80d6138c09cb2c4c66d0b963820f95ad1f21 (diff)
downloadredot-engine-56eb272e9078bb11486ef38c35bdc05a5636341f.tar.gz
Warn when falling back to another DisplayServer
Before it was a bit unclear on what was happening, since a display server has to fail to fall back and so the user would be left with an error _and_ a (hopefully) running game. Should make the experience more pleasant on Linux/BSD now that we have two display servers.
Diffstat (limited to 'main')
-rw-r--r--main/main.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/main/main.cpp b/main/main.cpp
index f82df786bc..51b4efa6bc 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -2838,6 +2838,8 @@ Error Main::setup2(bool p_show_boot_logo) {
Error err;
display_server = DisplayServer::create(display_driver_idx, rendering_driver, window_mode, window_vsync_mode, window_flags, window_position, window_size, init_screen, context, err);
if (err != OK || display_server == nullptr) {
+ String last_name = DisplayServer::get_create_function_name(display_driver_idx);
+
// We can't use this display server, try other ones as fallback.
// Skip headless (always last registered) because that's not what users
// would expect if they didn't request it explicitly.
@@ -2845,6 +2847,9 @@ Error Main::setup2(bool p_show_boot_logo) {
if (i == display_driver_idx) {
continue; // Don't try the same twice.
}
+ String name = DisplayServer::get_create_function_name(i);
+ WARN_PRINT(vformat("Display driver %s failed, falling back to %s.", last_name, name));
+
display_server = DisplayServer::create(i, rendering_driver, window_mode, window_vsync_mode, window_flags, window_position, window_size, init_screen, context, err);
if (err == OK && display_server != nullptr) {
break;