Merge branch 'master' into blender2.8
authorSergey Sharybin <sergey.vfx@gmail.com>
Thu, 23 Nov 2017 14:26:53 +0000 (15:26 +0100)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 23 Nov 2017 14:26:53 +0000 (15:26 +0100)
1  2 
source/blender/depsgraph/intern/nodes/deg_node_component.cc
source/blender/depsgraph/intern/nodes/deg_node_component.h

index 4d64ac36f2bf1e59852966893b501fe282f07bd0,26678d5b23a9620c1ff671c446068618289e9eec..aca25acd7c3f3b0611b93cfb7cf6d86ecb18330d
@@@ -329,40 -333,25 +329,28 @@@ 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(CopyOnWrite, COPY_ON_WRITE);
+ DEG_COMPONENT_DEFINE(Geometry, GEOMETRY);
++DEG_COMPONENT_DEFINE(LayerCollections, LAYER_COLLECTIONS);
+ 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(ShadingParameters, SHADING_PARAMETERS);
+ DEG_COMPONENT_DEFINE(Transform, TRANSFORM);
  
  /* Bone Component ========================================= */
  
index d2a375421fde687c95ce6c9ca31fe516533ab738,eddef3f6635450ae9c25c5ee23c350d1396b12bd..3fef313b1e4dffee33e36bdb88a1b70def637fa6
@@@ -156,33 -158,21 +156,24 @@@ struct ComponentDepsNode : public DepsN
  
  /* ---------------------------------------- */
  
- 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(CopyOnWrite);
+ DEG_COMPONENT_DECLARE_GENERIC(Geometry);
++DEG_COMPONENT_DECLARE_GENERIC(LayerCollections);
+ 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(ShadingParameters);
+ DEG_COMPONENT_DECLARE_GENERIC(Transform);
  
  /* Bone Component */
  struct BoneComponentDepsNode : public ComponentDepsNode {