summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-09-21 11:50:42 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-21 11:50:42 +0200
commitaa5c69bfd5b785ccae1cb35f0c0f7998f42c3e9f (patch)
tree6e29686d086078142af1a07363e7b72ea4a238a4 /editor/editor_node.cpp
parentafb1d82bb8330fa4a6ed003da23889cacc214b5b (diff)
parent107675f785912a17474ffcc8fa8bd762f2a73233 (diff)
downloadredot-engine-aa5c69bfd5b785ccae1cb35f0c0f7998f42c3e9f.tar.gz
Merge pull request #97239 from Calinou/editor-system-info-add-display-driver-window-mode
Mention display driver and window mode in Copy System Info text
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp35
1 files changed, 27 insertions, 8 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 44292b4185..184176391a 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -4952,8 +4952,10 @@ String EditorNode::_get_system_info() const {
godot_version += " " + hash;
}
+ String display_session_type;
#ifdef LINUXBSD_ENABLED
- const String display_server = OS::get_singleton()->get_environment("XDG_SESSION_TYPE").capitalize().replace(" ", ""); // `replace` is necessary, because `capitalize` introduces a whitespace between "x" and "11".
+ // `replace` is necessary, because `capitalize` introduces a whitespace between "x" and "11".
+ display_session_type = OS::get_singleton()->get_environment("XDG_SESSION_TYPE").capitalize().replace(" ", "");
#endif // LINUXBSD_ENABLED
String driver_name = OS::get_singleton()->get_current_rendering_driver_name().to_lower();
String rendering_method = OS::get_singleton()->get_current_rendering_method().to_lower();
@@ -5014,16 +5016,33 @@ String EditorNode::_get_system_info() const {
// Join info.
Vector<String> info;
info.push_back(godot_version);
+ String distribution_display_session_type = distribution_name;
if (!distribution_version.is_empty()) {
- info.push_back(distribution_name + " " + distribution_version);
- } else {
- info.push_back(distribution_name);
+ distribution_display_session_type += " " + distribution_version;
}
-#ifdef LINUXBSD_ENABLED
- if (!display_server.is_empty()) {
- info.push_back(display_server);
+ if (!display_session_type.is_empty()) {
+ distribution_display_session_type += " on " + display_session_type;
}
+ info.push_back(distribution_display_session_type);
+
+ String display_driver_window_mode;
+#ifdef LINUXBSD_ENABLED
+ // `replace` is necessary, because `capitalize` introduces a whitespace between "x" and "11".
+ display_driver_window_mode = DisplayServer::get_singleton()->get_name().capitalize().replace(" ", "") + " display driver";
#endif // LINUXBSD_ENABLED
+ if (!display_driver_window_mode.is_empty()) {
+ display_driver_window_mode += ", ";
+ }
+ display_driver_window_mode += get_viewport()->is_embedding_subwindows() ? "Single-window" : "Multi-window";
+
+ if (DisplayServer::get_singleton()->get_screen_count() == 1) {
+ display_driver_window_mode += ", " + itos(DisplayServer::get_singleton()->get_screen_count()) + " monitor";
+ } else {
+ display_driver_window_mode += ", " + itos(DisplayServer::get_singleton()->get_screen_count()) + " monitors";
+ }
+
+ info.push_back(display_driver_window_mode);
+
info.push_back(vformat("%s (%s)", driver_name, rendering_method));
String graphics;
@@ -5042,7 +5061,7 @@ String EditorNode::_get_system_info() const {
}
info.push_back(graphics);
- info.push_back(vformat("%s (%d Threads)", processor_name, processor_count));
+ info.push_back(vformat("%s (%d threads)", processor_name, processor_count));
return String(" - ").join(info);
}