diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-03-23 18:30:57 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-03-23 18:35:53 +0300 |
commit | 0c753c1dc4ad2085fbdb9ea5fdc2a31d44d126e9 (patch) | |
tree | 77249a020f058f446c8712e0f988485897806d34 /source/blender/makesrna/RNA_access.h | |
parent | 21f16bb93e1e29a9737edc5bfddcecdcbdfd9f73 (diff) |
RNA comparison/override: better control over property processing.
This commit essentially introduces a new RNA property flag, which when
set prevents affected property from being processed at all in comparison
code (also used to automatically generate static override rules).
The idea is to use it on very low-level data in RNA, like e.g. mesh's
geometry or psys' particles collections.
For now only applied to psys' particle collections, on the main mesh of
Agent327 pigeon, it goes from 100ms to 0.5ms on a full
auto-override-generating comparison...
Also added some new RNA property helper funcs to check on comparable and
overridable status.
Diffstat (limited to 'source/blender/makesrna/RNA_access.h')
-rw-r--r-- | source/blender/makesrna/RNA_access.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h index c00f8cd5a5f..562855c01cc 100644 --- a/source/blender/makesrna/RNA_access.h +++ b/source/blender/makesrna/RNA_access.h @@ -900,6 +900,9 @@ bool RNA_property_editable_index(PointerRNA *ptr, PropertyRNA *prop, int index); bool RNA_property_editable_flag(PointerRNA *ptr, PropertyRNA *prop); /* without lib check, only checks the flag */ bool RNA_property_animateable(PointerRNA *ptr, PropertyRNA *prop); bool RNA_property_animated(PointerRNA *ptr, PropertyRNA *prop); +bool RNA_property_overridable(PointerRNA *ptr, PropertyRNA *prop); +bool RNA_property_overridden(PointerRNA *ptr, PropertyRNA *prop); +bool RNA_property_comparable(PointerRNA *ptr, PropertyRNA *prop); bool RNA_property_path_from_ID_check(PointerRNA *ptr, PropertyRNA *prop); /* slow, use with care */ void RNA_property_update(struct bContext *C, PointerRNA *ptr, PropertyRNA *prop); |