From: Andreas Eversberg Date: Sun, 26 May 2019 07:07:10 +0000 (+0200) Subject: OVR: Exit on request from OVR server X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=mercenary-reloaded.git;a=commitdiff_plain;h=712bad610899c6ee9390783c44d2f2e70f12bc9a OVR: Exit on request from OVR server --- diff --git a/src/libovr/ovr.c b/src/libovr/ovr.c index c5f75b0..df019f8 100755 --- a/src/libovr/ovr.c +++ b/src/libovr/ovr.c @@ -463,6 +463,18 @@ void reset_observer_ovr(void) hand_z_reset = -observer_z; } +int should_quit_ovr(void) +{ + ovrSessionStatus sessionStatus; + ovrResult result; + + result = ovr_GetSessionStatus(session, &sessionStatus); + + if (OVR_SUCCESS(result)) + return sessionStatus.ShouldQuit; + return 0; +} + void exit_ovr(void) { int eye; diff --git a/src/libovr/ovr.h b/src/libovr/ovr.h index 6480216..653e664 100755 --- a/src/libovr/ovr.h +++ b/src/libovr/ovr.h @@ -8,4 +8,5 @@ void end_render_ovr_eye(int eye); void end_render_ovr(void); void render_mirror_ovr(int view_width, int view_height); void reset_observer_ovr(void); +int should_quit_ovr(void); diff --git a/src/mercenary/main.c b/src/mercenary/main.c index 8229642..8b66015 100644 --- a/src/mercenary/main.c +++ b/src/mercenary/main.c @@ -770,6 +770,9 @@ static void main_loop(void) /* render result on window */ while (!quit) { #ifdef HAVE_OVR + /* quit by OVR server */ + if (should_quit_ovr()) + break; /* get vr poses */ handle_vr_poses(); #endif