1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-23 15:16:17 +00:00

Fix function code generation for uniform triplanar node in visual shader

This commit is contained in:
Yuri Roubinsky
2021-07-21 12:57:11 +03:00
parent 8cc599db64
commit 40419a394d

View File

@@ -1740,6 +1740,7 @@ void VisualShader::_update_shader() const {
} }
Map<int, String> code_map; Map<int, String> code_map;
Set<int> empty_funcs;
for (int i = 0; i < TYPE_MAX; i++) { for (int i = 0; i < TYPE_MAX; i++) {
if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) { if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) {
@@ -1776,6 +1777,7 @@ void VisualShader::_update_shader() const {
} }
if (is_empty_func) { if (is_empty_func) {
empty_funcs.insert(i);
continue; continue;
} }
@@ -1934,7 +1936,11 @@ void VisualShader::_update_shader() const {
if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) { if (!has_func_name(RenderingServer::ShaderMode(shader_mode), func_name[i])) {
continue; continue;
} }
tcode = tcode.insert(insertion_pos[i], global_code_per_func[Type(i)]); String func_code = global_code_per_func[Type(i)].as_string();
if (empty_funcs.has(Type(i)) && !func_code.is_empty()) {
func_code = vformat("%s%s%s", String("\nvoid " + String(func_name[i]) + "() {\n"), func_code, "}\n");
}
tcode = tcode.insert(insertion_pos[i], func_code);
} }
final_code += tcode; final_code += tcode;