From 2651e88b0574719dcef774e0f8841e71cc2d8bcc Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Sun, 19 Jun 2022 01:05:17 +0200 Subject: [PATCH] Automatically update the editor viewport when 3D scaling options are changed This allows for previewing the effects of the various 3D scaling project settings without having to restart the editor. --- editor/plugins/node_3d_editor_plugin.cpp | 12 ++++++++++++ servers/rendering_server.cpp | 8 ++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/editor/plugins/node_3d_editor_plugin.cpp b/editor/plugins/node_3d_editor_plugin.cpp index 9f4842a5a19..815d0a24254 100644 --- a/editor/plugins/node_3d_editor_plugin.cpp +++ b/editor/plugins/node_3d_editor_plugin.cpp @@ -2412,6 +2412,18 @@ void Node3DEditorViewport::_project_settings_changed() { const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels"); viewport->set_mesh_lod_threshold(mesh_lod_threshold); + + const Viewport::Scaling3DMode scaling_3d_mode = Viewport::Scaling3DMode(int(GLOBAL_GET("rendering/scaling_3d/mode"))); + viewport->set_scaling_3d_mode(scaling_3d_mode); + + const float scaling_3d_scale = GLOBAL_GET("rendering/scaling_3d/scale"); + viewport->set_scaling_3d_scale(scaling_3d_scale); + + const float fsr_sharpness = GLOBAL_GET("rendering/scaling_3d/fsr_sharpness"); + viewport->set_fsr_sharpness(fsr_sharpness); + + const float fsr_mipmap_bias = GLOBAL_GET("rendering/scaling_3d/fsr_mipmap_bias"); + viewport->set_fsr_mipmap_bias(fsr_mipmap_bias); } void Node3DEditorViewport::_notification(int p_what) { diff --git a/servers/rendering_server.cpp b/servers/rendering_server.cpp index 26ab8b659e9..9b407043fc5 100644 --- a/servers/rendering_server.cpp +++ b/servers/rendering_server.cpp @@ -2934,10 +2934,10 @@ void RenderingServer::init() { ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/amount", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01")); ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/limit", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01")); - GLOBAL_DEF_RST("rendering/scaling_3d/mode", 0); - GLOBAL_DEF_RST("rendering/scaling_3d/scale", 1.0); - GLOBAL_DEF_RST("rendering/scaling_3d/fsr_sharpness", 0.2f); - GLOBAL_DEF_RST("rendering/scaling_3d/fsr_mipmap_bias", 0.0f); + GLOBAL_DEF("rendering/scaling_3d/mode", 0); + GLOBAL_DEF("rendering/scaling_3d/scale", 1.0); + GLOBAL_DEF("rendering/scaling_3d/fsr_sharpness", 0.2f); + GLOBAL_DEF("rendering/scaling_3d/fsr_mipmap_bias", 0.0f); ProjectSettings::get_singleton()->set_custom_property_info("rendering/scaling_3d/mode", PropertyInfo(Variant::INT, "rendering/scaling_3d/mode",