mirror of
https://github.com/overte-org/overte.git
synced 2025-04-12 21:12:23 +02:00
actually enter and leave vr mode
This commit is contained in:
parent
fa36a04a94
commit
884d8713ee
2 changed files with 42 additions and 4 deletions
|
@ -83,8 +83,8 @@ JNIEXPORT void Java_io_highfidelity_gvrinterface_InterfaceActivity_handleHifiURL
|
|||
void GVRInterface::idle() {
|
||||
#if defined(ANDROID) && defined(HAVE_LIBOVR)
|
||||
if (!_inVRMode && ovr_IsHeadsetDocked()) {
|
||||
qDebug() << "The headset just got docked - assume we are in VR mode.";
|
||||
_inVRMode = true;
|
||||
qDebug() << "The headset just got docked - enter VR mode.";
|
||||
enterVRMode();
|
||||
} else if (_inVRMode) {
|
||||
|
||||
if (ovr_IsHeadsetDocked()) {
|
||||
|
@ -109,8 +109,9 @@ void GVRInterface::idle() {
|
|||
<< ovrOrientation.x << ovrOrientation.y << ovrOrientation.z << ovrOrientation.w;
|
||||
}
|
||||
} else {
|
||||
qDebug() << "The headset was undocked - assume we are no longer in VR mode.";
|
||||
_inVRMode = false;
|
||||
qDebug() << "The headset was undocked - leaving VR mode.";
|
||||
|
||||
leaveVRMode();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -128,3 +129,36 @@ void GVRInterface::handleApplicationStateChange(Qt::ApplicationState state) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void GVRInterface::enterVRMode() {
|
||||
#if defined(ANDROID) && defined(HAVE_LIBOVR)
|
||||
// Default vrModeParms
|
||||
ovrModeParms vrModeParms;
|
||||
vrModeParms.AsynchronousTimeWarp = true;
|
||||
vrModeParms.AllowPowerSave = true;
|
||||
vrModeParms.DistortionFileName = NULL;
|
||||
vrModeParms.EnableImageServer = false;
|
||||
vrModeParms.CpuLevel = 2;
|
||||
vrModeParms.GpuLevel = 2;
|
||||
vrModeParms.GameThreadTid = 0;
|
||||
|
||||
QAndroidJniEnvironment jniEnv;
|
||||
|
||||
QPlatformNativeInterface* interface = QApplication::platformNativeInterface();
|
||||
jobject activity = (jobject) interface->nativeResourceForIntegration("QtActivity");
|
||||
|
||||
vrModeParms.ActivityObject = activity;
|
||||
|
||||
ovrHmdInfo hmdInfo;
|
||||
_ovr = ovr_EnterVrMode(vrModeParms, &hmdInfo);
|
||||
|
||||
_inVRMode = true;
|
||||
#endif
|
||||
}
|
||||
|
||||
void GVRInterface::leaveVRMode() {
|
||||
#if defined(ANDROID) && defined(HAVE_LIBOVR)
|
||||
ovr_LeaveVrMode(_ovr);
|
||||
_inVRMode = false;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -37,6 +37,10 @@ private slots:
|
|||
void handleApplicationStateChange(Qt::ApplicationState state);
|
||||
void idle();
|
||||
private:
|
||||
|
||||
void enterVRMode();
|
||||
void leaveVRMode();
|
||||
|
||||
RenderingClient* _client;
|
||||
bool _inVRMode;
|
||||
|
||||
|
|
Loading…
Reference in a new issue