Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-05-04 13:50:40 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-05-04 13:50:40 +0300
commit3248eef697dedc777a2748f8f63e9031dfe5b599 (patch)
tree1e953bc43e2a429148259b2dbb48833082c0861e
parenta0f369bc13022fe3773420edc87424eefb8a0300 (diff)
parentfa11dc673074462e4cf24bf7aeb647cab07bd820 (diff)
Merge branch 'master' into blender2.8
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_map.cc2
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc2
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc6
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc12
4 files changed, 14 insertions, 8 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_map.cc b/source/blender/depsgraph/intern/builder/deg_builder_map.cc
index 67cb04d1b98..218483d1dc5 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_map.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_map.cc
@@ -33,6 +33,8 @@
#include "BLI_utildefines.h"
#include "BLI_ghash.h"
+#include "DNA_ID.h"
+
namespace DEG {
BuilderMap::BuilderMap() {
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 208462713a5..c48381481f5 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@ -166,7 +166,7 @@ void DepsgraphNodeBuilder::build_rig(Object *object)
* mechanism in-between here to ensure that we can use same rig
* multiple times in same scene.
*/
- if (!built_map_.checkIsBuilt(armature)) {
+ if (!built_map_.checkIsBuiltAndTag(armature)) {
build_animdata(&armature->id);
/* Make sure pose is up-to-date with armature updates. */
add_operation_node(&armature->id,
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 45e05c6f928..4dfcf5229e3 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -539,7 +539,9 @@ void DepsgraphRelationBuilder::build_object_data(Object *object)
}
ID *obdata_id = (ID *)object->data;
/* Object data animation. */
- build_animdata(obdata_id);
+ if (!built_map_.checkIsBuilt(obdata_id)) {
+ build_animdata(obdata_id);
+ }
/* type-specific data. */
switch (object->type) {
case OB_MESH:
@@ -557,7 +559,7 @@ void DepsgraphRelationBuilder::build_object_data(Object *object)
build_proxy_rig(object);
}
else {
- build_rig(object);
+ build_rig(object);
}
break;
case OB_LAMP:
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
index 126aa85edd3..a9895eb3af1 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
@@ -317,11 +317,13 @@ void DepsgraphRelationBuilder::build_rig(Object *object)
add_relation(init_ik_key, flush_key, "Pose Init IK -> Pose Cleanup");
/* Make sure pose is up-to-date with armature updates. */
- OperationKey armature_key(&arm->id,
- DEG_NODE_TYPE_PARAMETERS,
- DEG_OPCODE_PLACEHOLDER,
- "Armature Eval");
- add_relation(armature_key, init_key, "Data dependency");
+ if (!built_map_.checkIsBuiltAndTag(arm)) {
+ OperationKey armature_key(&arm->id,
+ DEG_NODE_TYPE_PARAMETERS,
+ DEG_OPCODE_PLACEHOLDER,
+ "Armature Eval");
+ add_relation(armature_key, init_key, "Data dependency");
+ }
/* IK Solvers...
* - These require separate processing steps are pose-level