Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-08-20 21:17:00 +0300
committerJulian Eisel <julian@blender.org>2020-08-20 21:22:47 +0300
commitb077de086e14291fe5f7cdf6d3564a8f1cfb9cb3 (patch)
tree0213703881116dd624c6ed782c4759d16c00ee41 /source/blender/windowmanager
parent2e6d5e6c6bd43e8cb806919c7bdc62637d031ff1 (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.h6
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 ************** */