diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_lib_query.h')
-rw-r--r-- | source/blender/blenkernel/BKE_lib_query.h | 26 |
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 :(((( */ }; |