Merge pull request #50562 from Chaosus/vs_fix_funcs

Prevents function generation in visual shader if no connections to output are provided
This commit is contained in:
Yuri Roubinsky 2021-07-18 10:17:35 +03:00 committed by GitHub
commit 35dc0db296
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 0 deletions

View File

@ -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<Connection>::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";
}