From d63a284dff2c592a290eccd12cd5d121b6689b15 Mon Sep 17 00:00:00 2001 From: Yuri Roubinsky Date: Sat, 17 Jul 2021 22:33:19 +0300 Subject: [PATCH] Prevent function gen in visual shader if no out connection is provided --- scene/resources/visual_shader.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index 36a1c206c8..b4a95f2592 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -1752,6 +1752,11 @@ void VisualShader::_update_shader() const { StringBuilder func_code; + bool is_empty_func = false; + if (shader_mode != Shader::MODE_PARTICLES && shader_mode != Shader::MODE_SKY) { + is_empty_func = true; + } + for (const List::Element *E = graph[i].connections.front(); E; E = E->next()) { ConnectionKey from_key; from_key.node = E->get().from_node; @@ -1764,7 +1769,16 @@ void VisualShader::_update_shader() const { to_key.port = E->get().to_port; input_connections.insert(to_key, E); + + if (is_empty_func && to_key.node == NODE_ID_OUTPUT) { + is_empty_func = false; + } } + + if (is_empty_func) { + continue; + } + if (shader_mode != Shader::MODE_PARTICLES) { func_code += "\nvoid " + String(func_name[i]) + "() {\n"; }