[Bf-blender-cvs] [e9fc25835f2] master: Remove internal proxy code, and deprecate related DNA data.

Bastien Montagne noreply at git.blender.org
Fri Feb 4 09:31:42 CET 2022


Commit: e9fc25835f2091cf6533d92379a31c0656b4aafb
Author: Bastien Montagne
Date:   Thu Feb 3 17:57:40 2022 +0100
Branches: master
https://developer.blender.org/rBe9fc25835f2091cf6533d92379a31c0656b4aafb

Remove internal proxy code, and deprecate related DNA data.

Part of T91671.

Not much else to say, this is mainly a massive deletion of code.

Note that a few cleanups possible after this proxy removal were kept out
of this commit to try to reduce a bit its size.

Reviewed By: sergey, brecht

Maniphest Tasks: T91671

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

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

M	source/blender/blenkernel/BKE_action.h
M	source/blender/blenkernel/BKE_armature.h
M	source/blender/blenkernel/BKE_constraint.h
M	source/blender/blenkernel/BKE_lib_id.h
M	source/blender/blenkernel/BKE_lib_query.h
M	source/blender/blenkernel/BKE_lib_remap.h
M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/intern/action.c
M	source/blender/blenkernel/intern/armature.c
M	source/blender/blenkernel/intern/armature_update.c
M	source/blender/blenkernel/intern/blendfile_link_append.c
M	source/blender/blenkernel/intern/constraint.c
M	source/blender/blenkernel/intern/fcurve_driver.c
M	source/blender/blenkernel/intern/lib_id.c
M	source/blender/blenkernel/intern/lib_id_delete.c
M	source/blender/blenkernel/intern/lib_override_proxy_conversion.c
M	source/blender/blenkernel/intern/lib_query.c
M	source/blender/blenkernel/intern/lib_remap.c
M	source/blender/blenkernel/intern/object.cc
M	source/blender/blenkernel/intern/object_update.c
M	source/blender/blenloader/intern/readblenentry.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/readfile.h
M	source/blender/depsgraph/DEG_depsgraph_build.h
M	source/blender/depsgraph/intern/builder/deg_builder.cc
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.h
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_rig.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.h
M	source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
M	source/blender/depsgraph/intern/builder/pipeline_from_ids.cc
M	source/blender/depsgraph/intern/builder/pipeline_from_ids.h
M	source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc
M	source/blender/depsgraph/intern/depsgraph_tag.cc
M	source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
M	source/blender/depsgraph/intern/node/deg_node.cc
M	source/blender/depsgraph/intern/node/deg_node.h
M	source/blender/depsgraph/intern/node/deg_node_component.cc
M	source/blender/depsgraph/intern/node/deg_node_component.h
M	source/blender/draw/engines/overlay/overlay_armature.c
M	source/blender/editors/armature/pose_edit.c
M	source/blender/editors/armature/pose_group.c
M	source/blender/editors/interface/interface_templates.c
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_constraint.c
M	source/blender/editors/space_outliner/outliner_draw.cc
M	source/blender/editors/space_outliner/outliner_tree.cc
M	source/blender/makesdna/DNA_action_types.h
M	source/blender/makesdna/DNA_constraint_types.h
M	source/blender/makesdna/DNA_object_types.h
M	source/blender/makesdna/DNA_outliner_types.h
M	source/blender/makesrna/RNA_types.h
M	source/blender/makesrna/intern/rna_ID.c
M	source/blender/makesrna/intern/rna_armature.c
M	source/blender/makesrna/intern/rna_constraint.c
M	source/blender/makesrna/intern/rna_object.c
M	source/blender/makesrna/intern/rna_pose.c
M	source/blender/python/intern/bpy_rna_id_collection.c

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

diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h
index 0b09bfd8730..5d1b4baedfd 100644
--- a/source/blender/blenkernel/BKE_action.h
+++ b/source/blender/blenkernel/BKE_action.h
@@ -365,7 +365,6 @@ void what_does_obaction(struct Object *ob,
                         char groupname[],
                         const struct AnimationEvalContext *anim_eval_context);
 
-/* for proxy */
 void BKE_pose_copy_pchan_result(struct bPoseChannel *pchanto,
                                 const struct bPoseChannel *pchanfrom);
 /**
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h
index 8584ce6f508..12d8135ba55 100644
--- a/source/blender/blenkernel/BKE_armature.h
+++ b/source/blender/blenkernel/BKE_armature.h
@@ -619,14 +619,6 @@ void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph,
                            struct Scene *scene,
                            struct Object *object);
 
-void BKE_pose_eval_proxy_init(struct Depsgraph *depsgraph, struct Object *object);
-void BKE_pose_eval_proxy_done(struct Depsgraph *depsgraph, struct Object *object);
-void BKE_pose_eval_proxy_cleanup(struct Depsgraph *depsgraph, struct Object *object);
-
-void BKE_pose_eval_proxy_copy_bone(struct Depsgraph *depsgraph,
-                                   struct Object *object,
-                                   int pchan_index);
-
 /* -------------------------------------------------------------------- */
 /** \name Deform 3D Coordinates by Armature (armature_deform.c)
  * \{ */
diff --git a/source/blender/blenkernel/BKE_constraint.h b/source/blender/blenkernel/BKE_constraint.h
index 55e5cd0a149..2da79e27576 100644
--- a/source/blender/blenkernel/BKE_constraint.h
+++ b/source/blender/blenkernel/BKE_constraint.h
@@ -278,18 +278,6 @@ bool BKE_constraint_apply_and_remove_for_pose(struct Depsgraph *depsgraph,
 
 void BKE_constraint_panel_expand(struct bConstraint *con);
 
-/* Constraints + Proxies function prototypes */
-
-/**
- * Rescue all constraints tagged as being #CONSTRAINT_PROXY_LOCAL
- * (i.e. added to bone that's proxy-synced in this file).
- */
-void BKE_constraints_proxylocal_extract(struct ListBase *dst, struct ListBase *src);
-/**
- * Returns if the owner of the constraint is proxy-protected.
- */
-bool BKE_constraints_proxylocked_owner(struct Object *ob, struct bPoseChannel *pchan);
-
 /* Constraint Evaluation function prototypes */
 
 /**
diff --git a/source/blender/blenkernel/BKE_lib_id.h b/source/blender/blenkernel/BKE_lib_id.h
index ebd35cad965..daf13590ca2 100644
--- a/source/blender/blenkernel/BKE_lib_id.h
+++ b/source/blender/blenkernel/BKE_lib_id.h
@@ -376,10 +376,6 @@ enum {
   /** Clear asset data (in case the ID can actually be made local, in copy case asset data is never
    * copied over). */
   LIB_ID_MAKELOCAL_ASSET_DATA_CLEAR = 1 << 3,
-
-  /* Special type-specific options. */
-  /** For Objects, do not clear the proxy pointers while making the data-block local. */
-  LIB_ID_MAKELOCAL_OBJECT_NO_PROXY_CLEARING = 1 << 16,
 };
 
 /**
diff --git a/source/blender/blenkernel/BKE_lib_query.h b/source/blender/blenkernel/BKE_lib_query.h
index d853cb16b13..dd2e2a2f8e5 100644
--- a/source/blender/blenkernel/BKE_lib_query.h
+++ b/source/blender/blenkernel/BKE_lib_query.h
@@ -63,7 +63,7 @@ enum {
 
   /**
    * That ID is not really used by its owner, it's just an internal hint/helper.
-   * This addresses Their Highest Ugliness the 'from' pointers: Object->from_proxy and Key->from.
+   * This marks the 'from' pointers issue, like Key->from.
    * How to handle that kind of cases totally depends on what caller code is doing... */
   IDWALK_CB_LOOPBACK = (1 << 4),
 
@@ -135,7 +135,6 @@ enum {
   /** Do not process ID pointers inside embedded IDs. Needed by depsgraph processing e.g. */
   IDWALK_IGNORE_EMBEDDED_ID = (1 << 3),
 
-  IDWALK_NO_INDIRECT_PROXY_DATA_USAGE = (1 << 8), /* Ugly special case :(((( */
   /** Also process internal ID pointers like `ID.newid` or `ID.orig_id`.
    *  WARNING: Dangerous, use with caution. */
   IDWALK_DO_INTERNAL_RUNTIME_POINTERS = (1 << 9),
diff --git a/source/blender/blenkernel/BKE_lib_remap.h b/source/blender/blenkernel/BKE_lib_remap.h
index cc970342fbb..f14cd75c5c6 100644
--- a/source/blender/blenkernel/BKE_lib_remap.h
+++ b/source/blender/blenkernel/BKE_lib_remap.h
@@ -68,15 +68,6 @@ enum {
    * and can cause crashes very easily!
    */
   ID_REMAP_FORCE_NEVER_NULL_USAGE = 1 << 3,
-  /**
-   * Do not consider proxy/_group pointers of local objects as indirect usages...
-   * Our oh-so-beloved proxies again...
-   * Do not consider data used by local proxy object as indirect usage.
-   * This is needed e.g. in reload scenario,
-   * since we have to ensure remapping of Armature data of local proxy
-   * is also performed. Usual nightmare...
-   */
-  ID_REMAP_NO_INDIRECT_PROXY_DATA_USAGE = 1 << 4,
   /** Do not remap library override pointers. */
   ID_REMAP_SKIP_OVERRIDE_LIBRARY = 1 << 5,
   /** Don't touch the user count (use for low level actions such as swapping pointers). */
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index 99758f4ad78..96ed7942067 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -144,18 +144,6 @@ void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_sr
 void BKE_object_free_modifiers(struct Object *ob, int flag);
 void BKE_object_free_shaderfx(struct Object *ob, int flag);
 
-/**
- * Proxy rule:
- * - `lib_object->proxy_from` == the one we borrow from, set temporally while object_update.
- * - `local_object->proxy` == pointer to library object, saved in files and read.
- * - `local_object->proxy_group` == pointer to collection dupli-object, saved in files and read.
- */
-void BKE_object_make_proxy(struct Main *bmain,
-                           struct Object *ob,
-                           struct Object *target,
-                           struct Object *cob);
-void BKE_object_copy_proxy_drivers(struct Object *ob, struct Object *target);
-
 bool BKE_object_exists_check(struct Main *bmain, const struct Object *obtest);
 /**
  * Actual check for internal data, not context or flags.
@@ -444,7 +432,6 @@ void BKE_object_eval_constraints(struct Depsgraph *depsgraph,
                                  struct Object *ob);
 void BKE_object_eval_transform_final(struct Depsgraph *depsgraph, struct Object *ob);
 
-bool BKE_object_eval_proxy_copy(struct Depsgraph *depsgraph, struct Object *object);
 void BKE_object_eval_uber_transform(struct Depsgraph *depsgraph, struct Object *ob);
 void BKE_object_eval_uber_data(struct Depsgraph *depsgraph,
                                struct Scene *scene,
@@ -486,12 +473,6 @@ void BKE_object_handle_data_update(struct Depsgraph *depsgraph,
  */
 void BKE_object_handle_update(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob);
 /**
- * Proxy rule:
- * - lib_object->proxy_from == the one we borrow from, only set temporal and cleared here.
- * - local_object->proxy    == pointer to library object, saved in files and read.
- *
- * Function below is polluted with proxy exceptions, cleanup will follow!
- *
  * The main object update call, for object matrix, constraints, keys and #DispList (modifiers)
  * requires flags to be set!
  *
@@ -501,8 +482,7 @@ void BKE_object_handle_update(struct Depsgraph *depsgraph, struct Scene *scene,
 void BKE_object_handle_update_ex(struct Depsgraph *depsgraph,
                                  struct Scene *scene,
                                  struct Object *ob,
-                                 struct RigidBodyWorld *rbw,
-                                 bool do_proxy_update);
+                                 struct RigidBodyWorld *rbw);
 
 void BKE_object_sculpt_data_create(struct Object *ob);
 
diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c
index fde42304185..8426f6f4676 100644
--- a/source/blender/blenkernel/intern/action.c
+++ b/source/blender/blenkernel/intern/action.c
@@ -1956,30 +1956,15 @@ void BKE_pose_blend_read_lib(BlendLibReader *reader, Object *ob, bPose *pose)
     return;
   }
 
-  /* always rebuild to match proxy or lib changes, but on Undo */
+  /* Always rebuild to match library changes, except on Undo. */
   bool rebuild = false;
 
   if (!BLO_read_lib_is_undo(reader)) {
-    if (ob->proxy || ob->id.lib != arm->id.lib) {
+    if (ob->id.lib != arm->id.lib) {
       rebuild = true;
     }
   }
 
-  if (ob->proxy) {
-    /* sync proxy layer */
-    if (pose->proxy_layer) {
-      arm->layer = pose->proxy_layer;
-    }
-
-    /* sync proxy active bone */
-    if (pose->proxy_act_bone[0]) {
-      Bone *bone = BKE_armature_find_bone_name(arm, pose->proxy_act_bone);
-      if (bone) {
-        arm->act_bone = bone;
-      }
-    }
-  }
-
   LISTBASE_FOREACH (bPoseChannel *, pchan, &pose->chanbase) {
     BKE_constraint_blend_read_lib(reader, (ID *)ob, &pchan->constraints);
 
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 5704ef6e42f..65db5c50102 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -2296,161 +2296,6 @@ void BKE_armature_where_is(bArmature *arm)
 /** \name Pose Rebuild
  * \{ */
 
-/* if bone layer is protected, copy the data from from->pose
- * when used with linked libraries this copies from the linked pose into the local pose */
-static void pose_proxy_sync(Object *ob, Object *from, int layer_protected)
-{
-  bPose *pose = ob->pose, *frompose = from->pose;
-  bPoseChannel *pchan, *pchanp;
-  bConstraint *con;
-  int error = 0;
-
-  if (frompose == NULL) {
-    return;
-  }
-
-  /* in some cases when rigs change, we can't synchronize
-   * to avoid crashing check for possible errors here */
-  for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
-    if (pchan->bone->layer & layer_protected) {
-      if (BKE_pose_channel_find_name(frompose, pchan->name) == NULL) {
-        CLOG_ERROR(&LOG,
-                   "failed to sync proxy armature because '%s' is missing pose channel '%s'",
-                   

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list