[Bf-blender-cvs] [ba223dfac83] soc-2019-openxr: Exit OpenXR context/session gracefully if the runtime reports loss pending
Julian Eisel
noreply at git.blender.org
Thu Aug 8 00:04:17 CEST 2019
Commit: ba223dfac83111ca5f7a428fc475b9155870bd5f
Author: Julian Eisel
Date: Wed Aug 7 23:45:41 2019 +0200
Branches: soc-2019-openxr
https://developer.blender.org/rBba223dfac83111ca5f7a428fc475b9155870bd5f
Exit OpenXR context/session gracefully if the runtime reports loss pending
Handle XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING and
XR_SESSION_STATE_LOSS_PENDING according to the specification.
===================================================================
M intern/ghost/intern/GHOST_XrEvent.cpp
M intern/ghost/intern/GHOST_XrSession.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_XrEvent.cpp b/intern/ghost/intern/GHOST_XrEvent.cpp
index 0b625e84f3f..8234bfe07cf 100644
--- a/intern/ghost/intern/GHOST_XrEvent.cpp
+++ b/intern/ghost/intern/GHOST_XrEvent.cpp
@@ -50,6 +50,9 @@ GHOST_TSuccess GHOST_XrEventsHandle(GHOST_XrContextHandle xr_contexthandle)
xr_context->handleSessionStateChange((XrEventDataSessionStateChanged *)event);
return GHOST_kSuccess;
+ case XR_TYPE_EVENT_DATA_INSTANCE_LOSS_PENDING:
+ GHOST_XrContextDestroy(xr_contexthandle);
+ return GHOST_kSuccess;
default:
XR_DEBUG_PRINTF(xr_context, "Unhandled event: %i\n", event->type);
return GHOST_kFailure;
diff --git a/intern/ghost/intern/GHOST_XrSession.cpp b/intern/ghost/intern/GHOST_XrSession.cpp
index a3772348569..e8bd4eac917 100644
--- a/intern/ghost/intern/GHOST_XrSession.cpp
+++ b/intern/ghost/intern/GHOST_XrSession.cpp
@@ -218,6 +218,7 @@ GHOST_XrSession::eLifeExpectancy GHOST_XrSession::handleStateChangeEvent(
end();
break;
case XR_SESSION_STATE_EXITING:
+ case XR_SESSION_STATE_LOSS_PENDING:
return SESSION_DESTROY;
default:
break;
More information about the Bf-blender-cvs
mailing list