[Bf-blender-cvs] [2694c1fc60b] blender2.8: Merge branch 'master' into blender2.8
Sergey Sharybin
noreply at git.blender.org
Thu Feb 22 16:32:51 CET 2018
Commit: 2694c1fc60b9a7ee473722e4790d385cc747463a
Author: Sergey Sharybin
Date: Thu Feb 22 16:31:59 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB2694c1fc60b9a7ee473722e4790d385cc747463a
Merge branch 'master' into blender2.8
===================================================================
===================================================================
diff --cc source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
index 0892a48caaf,73bbbcfa0b3..aabcbd1c6d4
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
@@@ -134,38 -114,19 +134,38 @@@ void DepsgraphNodeBuilder::build_spline
/* Pose/Armature Bones Graph */
void DepsgraphNodeBuilder::build_rig(Object *object)
{
- bArmature *arm = (bArmature *)object->data;
+ bArmature *armature = (bArmature *)object->data;
+ Scene *scene_cow;
+ Object *object_cow;
+ bArmature *armature_cow;
+ if (DEG_depsgraph_use_copy_on_write()) {
+ /* NOTE: We need to expand both object and armature, so this way we can
+ * safely create object level pose.
+ */
+ scene_cow = get_cow_datablock(scene_);
+ object_cow = expand_cow_datablock(object);
+ armature_cow = expand_cow_datablock(armature);
+ }
+ else {
+ scene_cow = scene_;
+ object_cow = object;
+ armature_cow = armature;
+ }
OperationDepsNode *op_node;
- /* animation and/or drivers linking posebones to base-armature used to define them
+ /* Animation and/or drivers linking posebones to base-armature used to
+ * define them.
+ *
* NOTE: AnimData here is really used to control animated deform properties,
- * which ideally should be able to be unique across different instances.
- * Eventually, we need some type of proxy/isolation mechanism in-between here
- * to ensure that we can use same rig multiple times in same scene...
+ * which ideally should be able to be unique across different
+ * instances. Eventually, we need some type of proxy/isolation
+ * 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_.checkIsBuilt(arm)) {
- build_animdata(&arm->id);
++ if (!built_map_.checkIsBuilt(armature)) {
+ build_animdata(&armature->id);
/* Make sure pose is up-to-date with armature updates. */
- add_operation_node(&arm->id,
+ add_operation_node(&armature->id,
DEG_NODE_TYPE_PARAMETERS,
NULL,
DEG_OPCODE_PLACEHOLDER,
More information about the Bf-blender-cvs
mailing list