diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-11-12 12:23:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-12 12:23:34 +0100 |
commit | a54bd6e868a3cbaf8c9033815a798a3f5c1107ef (patch) | |
tree | 819476e2f71099a386b3e7dccd548818ddca0143 /servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp | |
parent | 55b49dc71b687b9edf640ae2264879852f0b0503 (diff) | |
parent | 826e781bfa90f55eed579e9b512a19b0c1c19ba4 (diff) | |
download | redot-engine-a54bd6e868a3cbaf8c9033815a798a3f5c1107ef.tar.gz |
Merge pull request #53914 from Chaosus/shader_default_texture_param
Diffstat (limited to 'servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp')
-rw-r--r-- | servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp index ce41e191e2..a9c39fb937 100644 --- a/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp +++ b/servers/rendering/renderer_rd/renderer_scene_sky_rd.cpp @@ -137,11 +137,20 @@ void RendererSceneSkyRD::SkyShaderData::set_code(const String &p_code) { valid = true; } -void RendererSceneSkyRD::SkyShaderData::set_default_texture_param(const StringName &p_name, RID p_texture) { +void RendererSceneSkyRD::SkyShaderData::set_default_texture_param(const StringName &p_name, RID p_texture, int p_index) { if (!p_texture.is_valid()) { - default_texture_params.erase(p_name); + if (default_texture_params.has(p_name) && default_texture_params[p_name].has(p_index)) { + default_texture_params[p_name].erase(p_index); + + if (default_texture_params[p_name].is_empty()) { + default_texture_params.erase(p_name); + } + } } else { - default_texture_params[p_name] = p_texture; + if (!default_texture_params.has(p_name)) { + default_texture_params[p_name] = Map<int, RID>(); + } + default_texture_params[p_name][p_index] = p_texture; } } |