Merge pull request #32494 from Chaosus/vs_fix_globals
Fix global code in visual shaders if two or more custom nodes are used
This commit is contained in:
commit
f9e9cc94cd
1 changed files with 6 additions and 2 deletions
|
@ -1148,12 +1148,16 @@ Error VisualShader::_write_node(Type type, StringBuilder &global_code, StringBui
|
|||
|
||||
global_code += vsnode->generate_global(get_mode(), type, node);
|
||||
|
||||
if (!r_classes.has(vsnode->get_class_name())) {
|
||||
String class_name = vsnode->get_class_name();
|
||||
if (class_name == "VisualShaderNodeCustom") {
|
||||
class_name = vsnode->get_script_instance()->get_script()->get_language()->get_global_class_name(vsnode->get_script_instance()->get_script()->get_path());
|
||||
}
|
||||
if (!r_classes.has(class_name)) {
|
||||
global_code_per_node += vsnode->generate_global_per_node(get_mode(), type, node);
|
||||
for (int i = 0; i < TYPE_MAX; i++) {
|
||||
global_code_per_func[Type(i)] += vsnode->generate_global_per_func(get_mode(), Type(i), node);
|
||||
}
|
||||
r_classes.insert(vsnode->get_class_name());
|
||||
r_classes.insert(class_name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue