LibQuery: Add option to NOT process embedded IDs.
Request from depsgraph department, which does basically consider those embedded IDs as any other data-block (unlike any BKE ID management code).
This commit is contained in:
@@ -116,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 :(((( */
|
||||
};
|
||||
|
||||
@@ -534,7 +534,10 @@ static void library_foreach_ID_as_subdata_link(ID **id_pp,
|
||||
FOREACH_CALLBACK_INVOKE_ID_PP(data, id_pp, IDWALK_CB_EMBEDDED);
|
||||
BLI_assert(id == *id_pp);
|
||||
|
||||
if (flag & IDWALK_RECURSE) {
|
||||
if (flag & IDWALK_IGNORE_EMBEDDED_ID) {
|
||||
/* Do Nothing. */
|
||||
}
|
||||
else if (flag & IDWALK_RECURSE) {
|
||||
/* Defer handling into main loop, recursively calling BKE_library_foreach_ID_link in
|
||||
* IDWALK_RECURSE case is troublesome, see T49553. */
|
||||
/* XXX note that this breaks the 'owner id' thing now, we likely want to handle that
|
||||
|
||||
Reference in New Issue
Block a user