From 76d52cbcb42381d2ceb71f6aacbf6753906e01d0 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 10 Aug 2021 10:04:57 +0200 Subject: Cleanup: Comment COW/LOCALIZED ID tags. This was really missing there (some COW tags behavior was also documented in some code using them, like in `sound.c`, but not in their definition). Ref. T88555. --- source/blender/makesdna/DNA_ID.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'source/blender/makesdna/DNA_ID.h') diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index f7f4b0e6104..3995e98f34d 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -563,13 +563,32 @@ enum { /** * The data-block is a copy-on-write/localized version. * + * RESET_NEVER + * * \warning This should not be cleared on existing data. * If support for this is needed, see T88026 as this flag controls memory ownership * of physics *shared* pointers. */ LIB_TAG_COPIED_ON_WRITE = 1 << 12, - + /** + * The data-block is not the original COW ID created by the depsgraph, but has be re-allocated + * during the evaluation process of another ID. + * + * RESET_NEVER + * + * Typical example is object data, when evaluating the object's modifier stack the final obdata + * can be different than the COW initial obdata ID. + */ LIB_TAG_COPIED_ON_WRITE_EVAL_RESULT = 1 << 13, + + /** + * The data-block is fully outside of any ID management area, and should be considered as a + * purely independent data. + * + * RESET_NEVER + * + * NOTE: Only used by nodegroups currently. + */ LIB_TAG_LOCALIZED = 1 << 14, /* RESET_NEVER tag data-block for freeing etc. behavior -- cgit v1.2.3