Skip to content

Commit a86cd83

Browse files
committed
Defer checking for rendering device support until the new project dialog is opened
This can save a lot of time opening the project manager and the information is only ever needed when creating a new project anyway
1 parent a3b42d8 commit a86cd83

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

editor/project_manager/project_dialog.cpp

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,23 @@ void ProjectDialog::show_dialog(bool p_reset_name) {
860860
set_title(TTRC("Create New Project"));
861861
set_ok_button_text(TTRC("Create"));
862862

863+
if (!rendering_device_checked) {
864+
rendering_device_supported = DisplayServer::is_rendering_device_supported();
865+
866+
if (!rendering_device_supported) {
867+
List<BaseButton *> buttons;
868+
renderer_button_group->get_buttons(&buttons);
869+
for (BaseButton *button : buttons) {
870+
if (button->get_meta(SNAME("rendering_method")) == "gl_compatibility") {
871+
button->set_pressed(true);
872+
break;
873+
}
874+
}
875+
}
876+
_renderer_selected();
877+
rendering_device_checked = true;
878+
}
879+
863880
name_container->show();
864881
install_path_container->hide();
865882
renderer_container->show();
@@ -1042,12 +1059,6 @@ ProjectDialog::ProjectDialog() {
10421059
default_renderer_type = EditorSettings::get_singleton()->get_setting("project_manager/default_renderer");
10431060
}
10441061

1045-
rendering_device_supported = DisplayServer::is_rendering_device_supported();
1046-
1047-
if (!rendering_device_supported) {
1048-
default_renderer_type = "gl_compatibility";
1049-
}
1050-
10511062
Button *rs_button = memnew(CheckBox);
10521063
rs_button->set_button_group(renderer_button_group);
10531064
rs_button->set_text(TTRC("Forward+"));
@@ -1107,8 +1118,6 @@ ProjectDialog::ProjectDialog() {
11071118
rd_not_supported->set_visible(false);
11081119
renderer_container->add_child(rd_not_supported);
11091120

1110-
_renderer_selected();
1111-
11121121
l = memnew(Label);
11131122
l->set_focus_mode(Control::FOCUS_ACCESSIBILITY);
11141123
l->set_text(TTRC("The renderer can be changed later, but scenes may need to be adjusted."));

editor/project_manager/project_dialog.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ class ProjectDialog : public ConfirmationDialog {
8080
HBoxContainer *default_files_container = nullptr;
8181
Ref<ButtonGroup> renderer_button_group;
8282
bool rendering_device_supported = false;
83+
bool rendering_device_checked = false;
8384
Label *rd_not_supported = nullptr;
8485

8586
Label *msg = nullptr;

0 commit comments

Comments
 (0)