[Bf-blender-cvs] [f149d5e4b21] master: Fix VR session toggle not changing reliably on session start/end

Julian Eisel noreply at git.blender.org
Tue Mar 31 16:54:29 CEST 2020


Commit: f149d5e4b21f372f779fdb28b39984355c9682a6
Author: Julian Eisel
Date:   Tue Mar 31 16:39:59 2020 +0200
Branches: master
https://developer.blender.org/rBf149d5e4b21f372f779fdb28b39984355c9682a6

Fix VR session toggle not changing reliably on session start/end

The text and icon were supposed to change but didn't reliably, which was
a race condition I think. It depended on how fast the OpenXR runtime
would transition the session state.
This also makes sure the correct notifier is sent on session exit.

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

M	source/blender/makesrna/intern/rna_xr.c
M	source/blender/windowmanager/intern/wm_operators.c

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

diff --git a/source/blender/makesrna/intern/rna_xr.c b/source/blender/makesrna/intern/rna_xr.c
index 76cbc99b397..b08e48a4b17 100644
--- a/source/blender/makesrna/intern/rna_xr.c
+++ b/source/blender/makesrna/intern/rna_xr.c
@@ -38,7 +38,7 @@ static bool rna_XrSessionState_is_running(bContext *C)
 {
 #  ifdef WITH_XR_OPENXR
   const wmWindowManager *wm = CTX_wm_manager(C);
-  return WM_xr_session_is_ready(&wm->xr);
+  return WM_xr_session_exists(&wm->xr);
 #  else
   UNUSED_VARS(C);
   return false;
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index e782b802729..c3446a016f1 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -3711,6 +3711,8 @@ static void wm_xr_session_update_screen(Main *bmain, const wmXrData *xr_data)
       }
     }
   }
+
+  WM_main_add_notifier(NC_WM | ND_XR_DATA_CHANGED, NULL);
 }
 
 static void wm_xr_session_update_screen_on_exit_cb(const wmXrData *xr_data)



More information about the Bf-blender-cvs mailing list