[Bf-blender-cvs] [1e8b3692b94] xr-controller-support: XR: Deactivate draw callbacks on session end

Peter Kim noreply at git.blender.org
Wed May 26 10:36:10 CEST 2021


Commit: 1e8b3692b9490a91dcacdc5c423297daddda37de
Author: Peter Kim
Date:   Wed May 26 17:04:39 2021 +0900
Branches: xr-controller-support
https://developer.blender.org/rB1e8b3692b9490a91dcacdc5c423297daddda37de

XR: Deactivate draw callbacks on session end

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

M	source/blender/windowmanager/xr/intern/wm_xr_intern.h
M	source/blender/windowmanager/xr/intern/wm_xr_session.c

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

diff --git a/source/blender/windowmanager/xr/intern/wm_xr_intern.h b/source/blender/windowmanager/xr/intern/wm_xr_intern.h
index 9b577c12f25..311ab747cbb 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_intern.h
+++ b/source/blender/windowmanager/xr/intern/wm_xr_intern.h
@@ -184,6 +184,7 @@ void wm_xr_session_gpu_binding_context_destroy(GHOST_ContextHandle context);
 
 void wm_xr_session_actions_init(wmXrData *xr);
 void wm_xr_session_actions_update(const struct bContext *C);
+void wm_xr_session_actions_uninit(wmXrData *xr);
 void wm_xr_session_controller_data_populate(const wmXrAction *controller_pose_action,
                                             wmXrData *xr);
 void wm_xr_session_controller_data_clear(wmXrSessionState *state);
diff --git a/source/blender/windowmanager/xr/intern/wm_xr_session.c b/source/blender/windowmanager/xr/intern/wm_xr_session.c
index cf2d4300df0..7033394d46c 100644
--- a/source/blender/windowmanager/xr/intern/wm_xr_session.c
+++ b/source/blender/windowmanager/xr/intern/wm_xr_session.c
@@ -125,6 +125,8 @@ static void wm_xr_session_exit_cb(void *customdata)
                                   settings->controller1_object);
   }
 
+  wm_xr_session_actions_uninit(xr_data);
+
   if (xr_data->runtime->exit_fn) {
     xr_data->runtime->exit_fn(xr_data);
   }
@@ -867,6 +869,11 @@ void wm_xr_session_actions_update(const bContext *C)
   }
 }
 
+void wm_xr_session_actions_uninit(wmXrData *xr)
+{
+  wm_xr_session_controller_data_clear(&xr->runtime->session_state);
+}
+
 void wm_xr_session_controller_data_populate(const wmXrAction *controller_pose_action, wmXrData *xr)
 {
   wmXrSessionState *state = &xr->runtime->session_state;



More information about the Bf-blender-cvs mailing list