diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-23 17:23:19 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-11-23 17:23:19 +0300 |
commit | 75a87abdc907c9bff034f8eb88294b92f8502c44 (patch) | |
tree | ccf09ead82a0e1ee6be5b9a5f5bc5cfb62703a9a | |
parent | f2842ac65ea28e38af45ca8202a1b0d3fcd6c172 (diff) |
Depsgraph: Cleanup, deduplicate code around component registration
-rw-r--r-- | source/blender/depsgraph/intern/nodes/deg_node_component.cc | 72 | ||||
-rw-r--r-- | source/blender/depsgraph/intern/nodes/deg_node_component.h | 55 |
2 files changed, 35 insertions, 92 deletions
diff --git a/source/blender/depsgraph/intern/nodes/deg_node_component.cc b/source/blender/depsgraph/intern/nodes/deg_node_component.cc index f21665eeb82..26678d5b23a 100644 --- a/source/blender/depsgraph/intern/nodes/deg_node_component.cc +++ b/source/blender/depsgraph/intern/nodes/deg_node_component.cc @@ -333,40 +333,25 @@ void ComponentDepsNode::finalize_build() operations_map = NULL; } -/* Parameter Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(ParametersComponentDepsNode, DEG_NODE_TYPE_PARAMETERS, "Parameters Component"); -static DepsNodeFactoryImpl<ParametersComponentDepsNode> DNTI_PARAMETERS; - -/* Animation Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(AnimationComponentDepsNode, DEG_NODE_TYPE_ANIMATION, "Animation Component"); -static DepsNodeFactoryImpl<AnimationComponentDepsNode> DNTI_ANIMATION; - -/* Transform Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(TransformComponentDepsNode, DEG_NODE_TYPE_TRANSFORM, "Transform Component"); -static DepsNodeFactoryImpl<TransformComponentDepsNode> DNTI_TRANSFORM; - -/* Proxy Component Defines ================================ */ - -DEG_DEPSNODE_DEFINE(ProxyComponentDepsNode, DEG_NODE_TYPE_PROXY, "Proxy Component"); -static DepsNodeFactoryImpl<ProxyComponentDepsNode> DNTI_PROXY; - -/* Geometry Component Defines ============================= */ - -DEG_DEPSNODE_DEFINE(GeometryComponentDepsNode, DEG_NODE_TYPE_GEOMETRY, "Geometry Component"); -static DepsNodeFactoryImpl<GeometryComponentDepsNode> DNTI_GEOMETRY; - -/* Sequencer Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(SequencerComponentDepsNode, DEG_NODE_TYPE_SEQUENCER, "Sequencer Component"); -static DepsNodeFactoryImpl<SequencerComponentDepsNode> DNTI_SEQUENCER; - -/* Pose Component ========================================= */ - -DEG_DEPSNODE_DEFINE(PoseComponentDepsNode, DEG_NODE_TYPE_EVAL_POSE, "Pose Eval Component"); -static DepsNodeFactoryImpl<PoseComponentDepsNode> DNTI_EVAL_POSE; +/* Register all components. =============================== */ + +#define DEG_COMPONENT_DEFINE(name, NAME) \ + DEG_DEPSNODE_DEFINE(name ## ComponentDepsNode, \ + DEG_NODE_TYPE_ ## NAME, \ + #name " Component"); \ +static DepsNodeFactoryImpl<name ## ComponentDepsNode> DNTI_ ## NAME + + +DEG_COMPONENT_DEFINE(Animation, ANIMATION); +DEG_COMPONENT_DEFINE(Cache, CACHE); +DEG_COMPONENT_DEFINE(Geometry, GEOMETRY); +DEG_COMPONENT_DEFINE(Parameters, PARAMETERS); +DEG_COMPONENT_DEFINE(Particles, EVAL_PARTICLES); +DEG_COMPONENT_DEFINE(Proxy, PROXY); +DEG_COMPONENT_DEFINE(Pose, EVAL_POSE); +DEG_COMPONENT_DEFINE(Sequencer, SEQUENCER); +DEG_COMPONENT_DEFINE(Shading, SHADING); +DEG_COMPONENT_DEFINE(Transform, TRANSFORM); /* Bone Component ========================================= */ @@ -387,24 +372,7 @@ void BoneComponentDepsNode::init(const ID *id, const char *subdata) this->pchan = BKE_pose_channel_find_name(object->pose, subdata); } -DEG_DEPSNODE_DEFINE(BoneComponentDepsNode, DEG_NODE_TYPE_BONE, "Bone Component"); -static DepsNodeFactoryImpl<BoneComponentDepsNode> DNTI_BONE; - -/* Particles Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(ParticlesComponentDepsNode, DEG_NODE_TYPE_EVAL_PARTICLES, "Particles Component"); -static DepsNodeFactoryImpl<ParticlesComponentDepsNode> DNTI_EVAL_PARTICLES; - -/* Shading Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(ShadingComponentDepsNode, DEG_NODE_TYPE_SHADING, "Shading Component"); -static DepsNodeFactoryImpl<ShadingComponentDepsNode> DNTI_SHADING; - -/* Cache Component Defines ============================ */ - -DEG_DEPSNODE_DEFINE(CacheComponentDepsNode, DEG_NODE_TYPE_CACHE, "Cache Component"); -static DepsNodeFactoryImpl<CacheComponentDepsNode> DNTI_CACHE; - +DEG_COMPONENT_DEFINE(Bone, BONE); /* Node Types Register =================================== */ diff --git a/source/blender/depsgraph/intern/nodes/deg_node_component.h b/source/blender/depsgraph/intern/nodes/deg_node_component.h index 4ef7dad3ac6..eddef3f6635 100644 --- a/source/blender/depsgraph/intern/nodes/deg_node_component.h +++ b/source/blender/depsgraph/intern/nodes/deg_node_component.h @@ -158,33 +158,21 @@ struct ComponentDepsNode : public DepsNode { /* ---------------------------------------- */ -struct ParametersComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct AnimationComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct TransformComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct ProxyComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct GeometryComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct SequencerComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct PoseComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; +#define DEG_COMPONENT_DECLARE_GENERIC(name) \ + struct name ## ComponentDepsNode : public ComponentDepsNode { \ + DEG_DEPSNODE_DECLARE; \ + } + +DEG_COMPONENT_DECLARE_GENERIC(Animation); +DEG_COMPONENT_DECLARE_GENERIC(Cache); +DEG_COMPONENT_DECLARE_GENERIC(Geometry); +DEG_COMPONENT_DECLARE_GENERIC(Parameters); +DEG_COMPONENT_DECLARE_GENERIC(Particles); +DEG_COMPONENT_DECLARE_GENERIC(Proxy); +DEG_COMPONENT_DECLARE_GENERIC(Pose); +DEG_COMPONENT_DECLARE_GENERIC(Sequencer); +DEG_COMPONENT_DECLARE_GENERIC(Shading); +DEG_COMPONENT_DECLARE_GENERIC(Transform); /* Bone Component */ struct BoneComponentDepsNode : public ComponentDepsNode { @@ -195,19 +183,6 @@ struct BoneComponentDepsNode : public ComponentDepsNode { DEG_DEPSNODE_DECLARE; }; -struct ParticlesComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct ShadingComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - -struct CacheComponentDepsNode : public ComponentDepsNode { - DEG_DEPSNODE_DECLARE; -}; - - void deg_register_component_depsnodes(); } // namespace DEG |