diff --git a/editor/project_manager/project_dialog.cpp b/editor/project_manager/project_dialog.cpp index 790c2214e18..ad01bb622b9 100644 --- a/editor/project_manager/project_dialog.cpp +++ b/editor/project_manager/project_dialog.cpp @@ -860,6 +860,23 @@ void ProjectDialog::show_dialog(bool p_reset_name) { set_title(TTRC("Create New Project")); set_ok_button_text(TTRC("Create")); + if (!rendering_device_checked) { + rendering_device_supported = DisplayServer::is_rendering_device_supported(); + + if (!rendering_device_supported) { + List buttons; + renderer_button_group->get_buttons(&buttons); + for (BaseButton *button : buttons) { + if (button->get_meta(SNAME("rendering_method")) == "gl_compatibility") { + button->set_pressed(true); + break; + } + } + } + _renderer_selected(); + rendering_device_checked = true; + } + name_container->show(); install_path_container->hide(); renderer_container->show(); @@ -1042,12 +1059,6 @@ ProjectDialog::ProjectDialog() { default_renderer_type = EditorSettings::get_singleton()->get_setting("project_manager/default_renderer"); } - rendering_device_supported = DisplayServer::is_rendering_device_supported(); - - if (!rendering_device_supported) { - default_renderer_type = "gl_compatibility"; - } - Button *rs_button = memnew(CheckBox); rs_button->set_button_group(renderer_button_group); rs_button->set_text(TTRC("Forward+")); @@ -1107,8 +1118,6 @@ ProjectDialog::ProjectDialog() { rd_not_supported->set_visible(false); renderer_container->add_child(rd_not_supported); - _renderer_selected(); - l = memnew(Label); l->set_focus_mode(Control::FOCUS_ACCESSIBILITY); l->set_text(TTRC("The renderer can be changed later, but scenes may need to be adjusted.")); diff --git a/editor/project_manager/project_dialog.h b/editor/project_manager/project_dialog.h index 1f48cd62282..1a0bd665e2a 100644 --- a/editor/project_manager/project_dialog.h +++ b/editor/project_manager/project_dialog.h @@ -80,6 +80,7 @@ private: HBoxContainer *default_files_container = nullptr; Ref renderer_button_group; bool rendering_device_supported = false; + bool rendering_device_checked = false; Label *rd_not_supported = nullptr; Label *msg = nullptr;