[Bf-blender-cvs] [599626edd53] master: Fix T64342: Incorrect snapping of focus object in camera view

Sergey Sharybin noreply at git.blender.org
Fri Jul 5 16:09:15 CEST 2019


Commit: 599626edd534ad776ab020ca041a8df2fae0980c
Author: Sergey Sharybin
Date:   Thu Jul 4 15:15:30 2019 +0200
Branches: master
https://developer.blender.org/rB599626edd534ad776ab020ca041a8df2fae0980c

Fix T64342: Incorrect snapping of focus object in camera view

Use more granular dependency graph traversal, which allows to ignore
dependencies which are not related on transform.

Reviewers: mano-wii, brecht

Differential Revision: https://developer.blender.org/D5184

===================================================================

M	source/blender/editors/transform/transform_conversions.c

===================================================================

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 95c2f088e5d..4ab787d8a74 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -6443,19 +6443,25 @@ static void trans_object_base_deps_flag_prepare(ViewLayer *view_layer)
   }
 }
 
-static void set_trans_object_base_deps_flag_cb(ID *id, void *UNUSED(user_data))
+static void set_trans_object_base_deps_flag_cb(ID *id,
+                                               eDepsObjectComponentType component,
+                                               void *UNUSED(user_data))
 {
   /* Here we only handle object IDs. */
   if (GS(id->name) != ID_OB) {
     return;
   }
+  if (component != DEG_OB_COMP_TRANSFORM) {
+    return;
+  }
   id->tag |= LIB_TAG_DOIT;
 }
 
 static void flush_trans_object_base_deps_flag(Depsgraph *depsgraph, Object *object)
 {
   object->id.tag |= LIB_TAG_DOIT;
-  DEG_foreach_dependent_ID(depsgraph, &object->id, set_trans_object_base_deps_flag_cb, NULL);
+  DEG_foreach_dependent_ID_component(
+      depsgraph, &object->id, DEG_OB_COMP_TRANSFORM, set_trans_object_base_deps_flag_cb, NULL);
 }
 
 static void trans_object_base_deps_flag_finish(ViewLayer *view_layer)



More information about the Bf-blender-cvs mailing list