diff options
author | Julian Eisel <julian@blender.org> | 2020-12-04 21:43:33 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2020-12-04 22:00:45 +0300 |
commit | 3daf28388b7372208cbec870f51b37be3aeac1e9 (patch) | |
tree | c4641fa492499eb355c4c37c8418f4d0791c3c66 /source/blender/editors/space_outliner/outliner_intern.h | |
parent | f5eaf67e34df088a2f0a19c744be7f8a51e7d9be (diff) |
Cleanup: Move Outliner runtime hash into internal runtime struct, out of DNA
This way Outliner internal data stays internal, non-Outliner code will not be
able to access and mess with this. Further it allows us to use the real type
(rather than `void *`), change the type to a C++ container if needed and
slightly reduces the size for every Outliner stored in files.
Slightly changed how we set the `SO_TREESTORE_REBUILD` for this, but it should
effectively behave the same way as before.
Diffstat (limited to 'source/blender/editors/space_outliner/outliner_intern.h')
-rw-r--r-- | source/blender/editors/space_outliner/outliner_intern.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h index aefba929c5e..0b432d932ca 100644 --- a/source/blender/editors/space_outliner/outliner_intern.h +++ b/source/blender/editors/space_outliner/outliner_intern.h @@ -47,10 +47,13 @@ struct wmKeyConfig; struct wmOperatorType; typedef struct SpaceOutliner_Runtime { - /** - * Internal C++ object to create and manage the tree for a specific display type (View Layers, - * Scenes, Blender File, etc.). */ + /** Internal C++ object to create and manage the tree for a specific display type (View Layers, + * Scenes, Blender File, etc.). */ struct TreeDisplay *tree_display; + + /** Pointers to treestore elements, grouped by (id, type, nr) + * in hashtable for faster searching */ + struct GHash *treehash; } SpaceOutliner_Runtime; typedef enum TreeElementInsertType { |