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:
Diffstat (limited to 'source/blender/blenkernel/BKE_lib_query.h')
-rw-r--r--source/blender/blenkernel/BKE_lib_query.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/source/blender/blenkernel/BKE_lib_query.h b/source/blender/blenkernel/BKE_lib_query.h
index b12803b1603..f3e15529f77 100644
--- a/source/blender/blenkernel/BKE_lib_query.h
+++ b/source/blender/blenkernel/BKE_lib_query.h
@@ -55,14 +55,14 @@ enum {
IDWALK_CB_INDIRECT_USAGE = (1 << 2),
/**
- * That ID is used as mere sub-data by its owner
- * (only case currently: those f***ing nodetrees in materials etc.).
- * This means callback shall not *do* anything,
- * only use this as informative data if it needs it.
+ * That ID is used as mere sub-data by its owner (only case currently: those root nodetrees in
+ * materials etc., and the Scene's master collections).
+ * This means callback shall not *do* anything, only use this as informative data if it needs it.
*/
- IDWALK_CB_PRIVATE = (1 << 3),
+ IDWALK_CB_EMBEDDED = (1 << 3),
- /** That ID is not really used by its owner, it's just an internal hint/helper.
+ /**
+ * 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.
* How to handle that kind of cases totally depends on what caller code is doing... */
IDWALK_CB_LOOPBACK = (1 << 4),
@@ -89,11 +89,15 @@ enum {
typedef struct LibraryIDLinkCallbackData {
void *user_data;
- /* 'Real' ID, the one that might be in bmain, only differs from self_id when the later is a
- * private one. */
+ /**
+ * 'Real' ID, the one that might be in bmain, only differs from self_id when the later is an
+ * embedded one.
+ */
struct ID *id_owner;
- /* ID from which the current ID pointer is being processed. It may be a 'private' ID like master
- * collection or root node tree. */
+ /**
+ * ID from which the current ID pointer is being processed. It may be an embedded ID like master
+ * collection or root node tree.
+ */
struct ID *id_self;
struct ID **id_pointer;
int cb_flag;
@@ -112,6 +116,8 @@ enum {
IDWALK_READONLY = (1 << 0),
IDWALK_RECURSE = (1 << 1), /* Also implies IDWALK_READONLY. */
IDWALK_INCLUDE_UI = (1 << 2), /* Include UI pointers (from WM and screens editors). */
+ /** 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 :(((( */
};