[Bf-blender-cvs] [48488b7106a] blender2.8: Skip dependency graph update when interface is locked

Sergey Sharybin noreply at git.blender.org
Wed Nov 7 14:05:31 CET 2018


Commit: 48488b7106a32bdc4bcf589dd3043d7101fe7054
Author: Sergey Sharybin
Date:   Wed Nov 7 13:05:38 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB48488b7106a32bdc4bcf589dd3043d7101fe7054

Skip dependency graph update when interface is locked

This is a variation of legacy dependency graph update check based on
G.is_rendering. Now it is ensured, that locked interface does not
tempter around with the dependency graph.

===================================================================

M	source/blender/windowmanager/intern/wm_event_system.c

===================================================================

diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 198eae05f92..cff221b3b64 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -299,9 +299,17 @@ static void wm_notifier_clear(wmNotifier *note)
 void wm_event_do_depsgraph(bContext *C)
 {
 	wmWindowManager *wm = CTX_wm_manager(C);
-	uint64_t win_combine_v3d_datamask = 0;
+
+	/* The whole idea of locked interface is to prevent viewport and whatever
+	 * thread to modify the same data. Because of this, we can not perform
+	 * dependency graph update.
+	 */
+	if (wm->is_interface_locked) {
+		return;
+	}
 
 	/* combine datamasks so 1 win doesn't disable UV's in another [#26448] */
+	uint64_t win_combine_v3d_datamask = 0;
 	for (wmWindow *win = wm->windows.first; win; win = win->next) {
 		const Scene *scene = WM_window_get_active_scene(win);
 		const bScreen *screen = WM_window_get_active_screen(win);



More information about the Bf-blender-cvs mailing list