summaryrefslogtreecommitdiffstats
path: root/editor/editor_node.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:48:59 +0100
committerRémi Verschelde <rverschelde@gmail.com>2024-01-08 11:48:59 +0100
commit15186b6606e27ce5fe7d257b8a13e66ea3ffd077 (patch)
tree4f9353526553873d7481e73bc3755297a6cf14c0 /editor/editor_node.cpp
parent91dacb469d3ee942c35f5b73bfee50741ce74766 (diff)
parent57f3bdb1e5f775f43b67386b1f625cc7ad414d07 (diff)
downloadredot-engine-15186b6606e27ce5fe7d257b8a13e66ea3ffd077.tar.gz
Merge pull request #72461 from Calinou/editor-renderer-select-mobile
Make the rendering method dropdown also affect mobile if compatible
Diffstat (limited to 'editor/editor_node.cpp')
-rw-r--r--editor/editor_node.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 91e27efeee..3eb40b1931 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -3013,6 +3013,16 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
} break;
case SET_RENDERER_NAME_SAVE_AND_RESTART: {
ProjectSettings::get_singleton()->set("rendering/renderer/rendering_method", renderer_request);
+ if (renderer_request == "mobile" || renderer_request == "gl_compatibility") {
+ // Also change the mobile override if changing to a compatible rendering method.
+ // This prevents visual discrepancies between desktop and mobile platforms.
+ ProjectSettings::get_singleton()->set("rendering/renderer/rendering_method.mobile", renderer_request);
+ } else if (renderer_request == "forward_plus") {
+ // Use the equivalent mobile rendering method. This prevents the rendering method from staying
+ // on its old choice if moving from `gl_compatibility` to `forward_plus`.
+ ProjectSettings::get_singleton()->set("rendering/renderer/rendering_method.mobile", "mobile");
+ }
+
ProjectSettings::get_singleton()->save();
save_all_scenes();
@@ -6576,6 +6586,9 @@ void EditorNode::_renderer_selected(int p_which) {
}
renderer_request = rendering_method;
+ video_restart_dialog->set_text(
+ vformat(TTR("Changing the renderer requires restarting the editor.\n\nChoosing Save & Restart will change the rendering method to:\n- Desktop platforms: %s\n- Mobile platforms: %s\n- Web platform: gl_compatibility"),
+ renderer_request, renderer_request.replace("forward_plus", "mobile")));
video_restart_dialog->popup_centered();
renderer->select(renderer_current);
_update_renderer_color();
@@ -7553,7 +7566,7 @@ EditorNode::EditorNode() {
renderer->set_focus_mode(Control::FOCUS_NONE);
renderer->add_theme_font_override("font", theme->get_font(SNAME("bold"), EditorStringName(EditorFonts)));
renderer->add_theme_font_size_override("font_size", theme->get_font_size(SNAME("bold_size"), EditorStringName(EditorFonts)));
- renderer->set_tooltip_text(TTR("Choose a renderer."));
+ renderer->set_tooltip_text(TTR("Choose a rendering method.\n\nNotes:\n- On mobile platforms, the Mobile rendering method is used if Forward+ is selected here.\n- On the web platform, the Compatibility rendering method is always used."));
right_menu_hb->add_child(renderer);
@@ -7595,7 +7608,6 @@ EditorNode::EditorNode() {
_update_renderer_color();
video_restart_dialog = memnew(ConfirmationDialog);
- video_restart_dialog->set_text(TTR("Changing the renderer requires restarting the editor."));
video_restart_dialog->set_ok_button_text(TTR("Save & Restart"));
video_restart_dialog->connect("confirmed", callable_mp(this, &EditorNode::_menu_option).bind(SET_RENDERER_NAME_SAVE_AND_RESTART));
gui_base->add_child(video_restart_dialog);