Improve logging for oculus errors

This commit is contained in:
Zach Pomerantz 2016-03-28 11:22:56 -07:00
parent 50cc632b9c
commit 776893a5ab
4 changed files with 26 additions and 6 deletions

View file

@ -65,7 +65,7 @@ void OculusBaseDisplayPlugin::internalActivate() {
if (!OVR_SUCCESS(ovr_ConfigureTracking(_session,
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.

View file

@ -67,7 +67,7 @@ void OculusDisplayPlugin::hmdPresent() {
ovrLayerHeader* layers = &_sceneLayer.Header;
ovrResult result = ovr_SubmitFrame(_session, _currentRenderFrameIndex, &_viewScaleDesc, &layers, 1);
if (!OVR_SUCCESS(result)) {
qDebug() << result;
logWarning("Failed to present");
}
}
_sceneFbo->Increment();

View file

@ -10,16 +10,34 @@
#include <atomic>
#include <QtCore/QLoggingCategory>
using Mutex = std::mutex;
using Lock = std::unique_lock<Mutex>;
Q_DECLARE_LOGGING_CATEGORY(oculus)
Q_LOGGING_CATEGORY(oculus, "hifi.plugins.oculus")
static std::atomic<uint32_t> refCount { 0 };
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() {
ovrDetectResult detect = ovr_Detect(0);
return (detect.IsOculusServiceRunning && detect.IsOculusHMDConnected);
@ -37,14 +55,14 @@ ovrSession acquireOculusSession() {
init.ConnectionTimeoutMS = 0;
init.LogCallback = nullptr;
if (!OVR_SUCCESS(ovr_Initialize(nullptr))) {
qCWarning(oculus) << "Failed to initialize Oculus SDK";
logWarning("Failed to initialize Oculus SDK");
return session;
}
Q_ASSERT(0 == refCount);
ovrGraphicsLuid luid;
if (!OVR_SUCCESS(ovr_Create(&session, &luid))) {
qCWarning(oculus) << "Failed to acquire Oculus session";
logWarning("Failed to acquire Oculus session");
return session;
}
}
@ -105,7 +123,7 @@ void SwapFramebufferWrapper::initColor() {
destroyColor();
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) {

View file

@ -14,6 +14,8 @@
#include <gl/OglplusHelpers.h>
void logWarning(const char* what);
void logFatal(const char* what);
bool oculusAvailable();
ovrSession acquireOculusSession();
void releaseOculusSession();