Fix T94977: muted link is not ignored in eevee
Add a preprocessing step that removes all muted links from the localized node tree. Differential Revision: https://developer.blender.org/D13864
This commit is contained in:
parent
9f8ae130af
commit
2486346f6f
Notes:
blender-bot
2023-02-13 16:29:55 +01:00
Referenced by issue #94977, Default node group input color ignored when link is muted
|
@ -418,6 +418,22 @@ static void ntree_shader_groups_expand_inputs(bNodeTree *localtree)
|
|||
}
|
||||
}
|
||||
|
||||
static void ntree_shader_groups_remove_muted_links(bNodeTree *ntree)
|
||||
{
|
||||
LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
|
||||
if (node->type == NODE_GROUP) {
|
||||
if (node->id != nullptr) {
|
||||
ntree_shader_groups_remove_muted_links(reinterpret_cast<bNodeTree *>(node->id));
|
||||
}
|
||||
}
|
||||
}
|
||||
LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
|
||||
if (link->flag & NODE_LINK_MUTED) {
|
||||
nodeRemLink(ntree, link);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void flatten_group_do(bNodeTree *ntree, bNode *gnode)
|
||||
{
|
||||
LinkNode *group_interface_nodes = nullptr;
|
||||
|
@ -875,6 +891,7 @@ void ntreeGPUMaterialNodes(bNodeTree *localtree,
|
|||
|
||||
bNode *output = ntreeShaderOutputNode(localtree, SHD_OUTPUT_EEVEE);
|
||||
|
||||
ntree_shader_groups_remove_muted_links(localtree);
|
||||
ntree_shader_groups_expand_inputs(localtree);
|
||||
|
||||
ntree_shader_groups_flatten(localtree);
|
||||
|
|
Loading…
Reference in New Issue