From 27b04b2bde6e1b7d4afc7b34a8f72e6d41478115 Mon Sep 17 00:00:00 2001 From: bjorn Date: Thu, 25 Jun 2020 15:00:12 -0600 Subject: [PATCH] vrapi: Add support for focus awareness; --- Tuprules.tup | 3 +-- src/modules/headset/headset_vrapi.c | 16 ++++++++++++++++ src/resources/AndroidManifest.xml | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Tuprules.tup b/Tuprules.tup index 644c0d33..65ad4106 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -212,8 +212,7 @@ ifeq ($(PLATFORM),android) LDFLAGS_@(DATA) += -L$(ROOT)/build/lib_msdfgen -lmsdfgen LDFLAGS_@(PHYSICS) += -L$(ROOT)/build/ode -lode LDFLAGS_@(ENET) += -L$(ROOT)/build/enet -lenet - LDFLAGS_@(VRAPI) += -L$(VRAPI_LIB_PATH) - LDFLAGS_@(VRAPI) += -lvrapi + LDFLAGS_@(VRAPI) += -L$(VRAPI_LIB_PATH) -lvrapi LIBS_@(AUDIO) += $(ROOT)/build/openal/libopenal.*so* LIBS_@(PHYSICS) += $(ROOT)/build/ode/libode.so diff --git a/src/modules/headset/headset_vrapi.c b/src/modules/headset/headset_vrapi.c index 285a3afe..49149750 100644 --- a/src/modules/headset/headset_vrapi.c +++ b/src/modules/headset/headset_vrapi.c @@ -1,4 +1,5 @@ #include "headset/headset.h" +#include "event/event.h" #include "graphics/canvas.h" #include "graphics/graphics.h" #include "core/maf.h" @@ -413,6 +414,21 @@ static void vrapi_renderTo(void (*callback)(void*), void* userdata) { static void vrapi_update(float dt) { if (!state.session) return; + VRAPI_LARGEST_EVENT_TYPE event; + while (vrapi_PollEvent(&event.EventHeader) == ovrSuccess) { + switch (event.EventHeader.EventType) { + case VRAPI_EVENT_FOCUS_GAINED: + lovrEventPush((Event) { .type = EVENT_FOCUS, .data.boolean = { true } }); + break; + + case VRAPI_EVENT_FOCUS_LOST: + lovrEventPush((Event) { .type = EVENT_FOCUS, .data.boolean = { false } }); + break; + + default: break; + } + } + state.frameIndex++; state.displayTime = vrapi_GetPredictedDisplayTime(state.session, state.frameIndex); diff --git a/src/resources/AndroidManifest.xml b/src/resources/AndroidManifest.xml index bdc30b2c..9172aa08 100644 --- a/src/resources/AndroidManifest.xml +++ b/src/resources/AndroidManifest.xml @@ -7,6 +7,7 @@ +