diff options
Diffstat (limited to 'source/blender/depsgraph/intern/nodes/deg_node_component.h')
-rw-r--r-- | source/blender/depsgraph/intern/nodes/deg_node_component.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/source/blender/depsgraph/intern/nodes/deg_node_component.h b/source/blender/depsgraph/intern/nodes/deg_node_component.h index 4ef7dad3ac6..d2a375421fd 100644 --- a/source/blender/depsgraph/intern/nodes/deg_node_component.h +++ b/source/blender/depsgraph/intern/nodes/deg_node_component.h @@ -131,7 +131,7 @@ struct ComponentDepsNode : public DepsNode { OperationDepsNode *get_entry_operation(); OperationDepsNode *get_exit_operation(); - void finalize_build(); + void finalize_build(Depsgraph *graph); IDDepsNode *owner; @@ -151,9 +151,7 @@ struct ComponentDepsNode : public DepsNode { OperationDepsNode *exit_operation; // XXX: a poll() callback to check if component's first node can be started? - - /* Temporary bitmask, used during graph construction. */ - unsigned int layers; + virtual bool depends_on_cow() { return true; } }; /* ---------------------------------------- */ @@ -203,10 +201,25 @@ struct ShadingComponentDepsNode : public ComponentDepsNode { DEG_DEPSNODE_DECLARE; }; +struct ShadingParametersComponentDepsNode : public ComponentDepsNode { + DEG_DEPSNODE_DECLARE; + virtual bool depends_on_cow() { return false; } +}; + struct CacheComponentDepsNode : public ComponentDepsNode { DEG_DEPSNODE_DECLARE; }; +struct LayerCollectionsDepsNode : public ComponentDepsNode { + DEG_DEPSNODE_DECLARE; +}; + +struct CopyOnWriteDepsNode : public ComponentDepsNode { + DEG_DEPSNODE_DECLARE; + + virtual bool depends_on_cow() { return false; } +}; + void deg_register_component_depsnodes(); |