mirror of
https://github.com/overte-org/overte.git
synced 2025-04-13 11:22:10 +02:00
Improve logging for oculus errors
This commit is contained in:
parent
50cc632b9c
commit
776893a5ab
4 changed files with 26 additions and 6 deletions
|
@ -65,7 +65,7 @@ void OculusBaseDisplayPlugin::internalActivate() {
|
||||||
|
|
||||||
if (!OVR_SUCCESS(ovr_ConfigureTracking(_session,
|
if (!OVR_SUCCESS(ovr_ConfigureTracking(_session,
|
||||||
ovrTrackingCap_Orientation | ovrTrackingCap_Position | ovrTrackingCap_MagYawCorrection, 0))) {
|
ovrTrackingCap_Orientation | ovrTrackingCap_Position | ovrTrackingCap_MagYawCorrection, 0))) {
|
||||||
qWarning() << "Could not attach to sensor device";
|
logWarning("Failed to attach to sensor device");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parent class relies on our _session intialization, so it must come after that.
|
// Parent class relies on our _session intialization, so it must come after that.
|
||||||
|
|
|
@ -67,7 +67,7 @@ void OculusDisplayPlugin::hmdPresent() {
|
||||||
ovrLayerHeader* layers = &_sceneLayer.Header;
|
ovrLayerHeader* layers = &_sceneLayer.Header;
|
||||||
ovrResult result = ovr_SubmitFrame(_session, _currentRenderFrameIndex, &_viewScaleDesc, &layers, 1);
|
ovrResult result = ovr_SubmitFrame(_session, _currentRenderFrameIndex, &_viewScaleDesc, &layers, 1);
|
||||||
if (!OVR_SUCCESS(result)) {
|
if (!OVR_SUCCESS(result)) {
|
||||||
qDebug() << result;
|
logWarning("Failed to present");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_sceneFbo->Increment();
|
_sceneFbo->Increment();
|
||||||
|
|
|
@ -10,16 +10,34 @@
|
||||||
|
|
||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <QtCore/QLoggingCategory>
|
#include <QtCore/QLoggingCategory>
|
||||||
|
|
||||||
using Mutex = std::mutex;
|
using Mutex = std::mutex;
|
||||||
using Lock = std::unique_lock<Mutex>;
|
using Lock = std::unique_lock<Mutex>;
|
||||||
|
|
||||||
|
|
||||||
Q_DECLARE_LOGGING_CATEGORY(oculus)
|
Q_DECLARE_LOGGING_CATEGORY(oculus)
|
||||||
Q_LOGGING_CATEGORY(oculus, "hifi.plugins.oculus")
|
Q_LOGGING_CATEGORY(oculus, "hifi.plugins.oculus")
|
||||||
|
|
||||||
static std::atomic<uint32_t> refCount { 0 };
|
static std::atomic<uint32_t> refCount { 0 };
|
||||||
static ovrSession session { nullptr };
|
static ovrSession session { nullptr };
|
||||||
|
|
||||||
|
inline ovrErrorInfo getError() {
|
||||||
|
ovrErrorInfo error;
|
||||||
|
ovr_GetLastErrorInfo(&error);
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
void logWarning(const char* what) {
|
||||||
|
qWarning(oculus) << what << ":" << getError().ErrorString;
|
||||||
|
}
|
||||||
|
|
||||||
|
void logFatal(const char* what) {
|
||||||
|
std::string error("[oculus] ");
|
||||||
|
error += what;
|
||||||
|
error += ": ";
|
||||||
|
error += getError().ErrorString;
|
||||||
|
qFatal(error.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
bool oculusAvailable() {
|
bool oculusAvailable() {
|
||||||
ovrDetectResult detect = ovr_Detect(0);
|
ovrDetectResult detect = ovr_Detect(0);
|
||||||
return (detect.IsOculusServiceRunning && detect.IsOculusHMDConnected);
|
return (detect.IsOculusServiceRunning && detect.IsOculusHMDConnected);
|
||||||
|
@ -37,14 +55,14 @@ ovrSession acquireOculusSession() {
|
||||||
init.ConnectionTimeoutMS = 0;
|
init.ConnectionTimeoutMS = 0;
|
||||||
init.LogCallback = nullptr;
|
init.LogCallback = nullptr;
|
||||||
if (!OVR_SUCCESS(ovr_Initialize(nullptr))) {
|
if (!OVR_SUCCESS(ovr_Initialize(nullptr))) {
|
||||||
qCWarning(oculus) << "Failed to initialize Oculus SDK";
|
logWarning("Failed to initialize Oculus SDK");
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_ASSERT(0 == refCount);
|
Q_ASSERT(0 == refCount);
|
||||||
ovrGraphicsLuid luid;
|
ovrGraphicsLuid luid;
|
||||||
if (!OVR_SUCCESS(ovr_Create(&session, &luid))) {
|
if (!OVR_SUCCESS(ovr_Create(&session, &luid))) {
|
||||||
qCWarning(oculus) << "Failed to acquire Oculus session";
|
logWarning("Failed to acquire Oculus session");
|
||||||
return session;
|
return session;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +123,7 @@ void SwapFramebufferWrapper::initColor() {
|
||||||
destroyColor();
|
destroyColor();
|
||||||
|
|
||||||
if (!OVR_SUCCESS(ovr_CreateSwapTextureSetGL(_session, GL_SRGB8_ALPHA8, size.x, size.y, &color))) {
|
if (!OVR_SUCCESS(ovr_CreateSwapTextureSetGL(_session, GL_SRGB8_ALPHA8, size.x, size.y, &color))) {
|
||||||
qFatal("Unable to create swap textures");
|
logFatal("Failed to create swap textures");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < color->TextureCount; ++i) {
|
for (int i = 0; i < color->TextureCount; ++i) {
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
#include <gl/OglplusHelpers.h>
|
#include <gl/OglplusHelpers.h>
|
||||||
|
|
||||||
|
void logWarning(const char* what);
|
||||||
|
void logFatal(const char* what);
|
||||||
bool oculusAvailable();
|
bool oculusAvailable();
|
||||||
ovrSession acquireOculusSession();
|
ovrSession acquireOculusSession();
|
||||||
void releaseOculusSession();
|
void releaseOculusSession();
|
||||||
|
|
Loading…
Reference in a new issue