diff options
author | Julian Eisel <julian@blender.org> | 2020-08-20 21:17:00 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2020-08-20 21:22:47 +0300 |
commit | b077de086e14291fe5f7cdf6d3564a8f1cfb9cb3 (patch) | |
tree | 0213703881116dd624c6ed782c4759d16c00ee41 /source/blender/windowmanager | |
parent | 2e6d5e6c6bd43e8cb806919c7bdc62637d031ff1 (diff) |
Outliner: Avoid rebuilding tree on selection/active changes
We can avoid the rather expensive outliner tree rebuilds and only redraw
if nothing but the selection or active item changes. This should give a
bit of speedup for heavy scenes.
For this to work I had to correct a few notifiers, some were only
sending selection/active change notifiers that actually did things like
adding objects. I also added a more precise notifier type for when the
active collection changes. At the notifier subtype/action level we're
not even close to running out of bits, so this should be fine.
Also had to correct a wrong notifier check (was using `&` rather than
`==`).
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_types.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h index efe600a846a..e15a808975c 100644 --- a/source/blender/windowmanager/WM_types.h +++ b/source/blender/windowmanager/WM_types.h @@ -440,6 +440,9 @@ typedef struct wmNotifier { #define NS_VIEW3D_GPU (16 << 8) #define NS_VIEW3D_SHADING (16 << 9) +/* subtype layer editing */ +#define NS_LAYER_COLLECTION (24 << 8) + /* action classification */ #define NOTE_ACTION (0x000000FF) #define NA_EDITED 1 @@ -448,7 +451,8 @@ typedef struct wmNotifier { #define NA_REMOVED 4 #define NA_RENAME 5 #define NA_SELECTED 6 -#define NA_PAINTING 7 +#define NA_ACTIVATED 7 +#define NA_PAINTING 8 /* ************** Gesture Manager data ************** */ |