[Bf-blender-cvs] [3609e88] HMD_viewport: Added check for nan events from OpenHMD
TheOnlyJoey
noreply at git.blender.org
Thu Mar 17 21:33:32 CET 2016
Commit: 3609e8868c806719933478f934c329b5af68d5c3
Author: TheOnlyJoey
Date: Thu Mar 17 21:05:45 2016 +0100
Branches: HMD_viewport
https://developer.blender.org/rB3609e8868c806719933478f934c329b5af68d5c3
Added check for nan events from OpenHMD
===================================================================
M intern/ghost/intern/GHOST_OpenHMDManager.cpp
M intern/ghost/intern/GHOST_OpenHMDManager.h
M intern/ghost/intern/GHOST_System.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_OpenHMDManager.cpp b/intern/ghost/intern/GHOST_OpenHMDManager.cpp
index b7f384f..e3956cd 100644
--- a/intern/ghost/intern/GHOST_OpenHMDManager.cpp
+++ b/intern/ghost/intern/GHOST_OpenHMDManager.cpp
@@ -78,7 +78,8 @@ bool GHOST_OpenHMDManager::processEvents()
GHOST_TEventOpenHMDData* data = (GHOST_TEventOpenHMDData*) event->getData();
ohmd_ctx_update(m_context);
- getRotationQuat(data->orientation);
+ if (!getRotationQuat(data->orientation))
+ return false;
m_system.pushEvent(event);
return true;
@@ -171,19 +172,22 @@ const char *GHOST_OpenHMDManager::getPath() const
return ohmd_list_gets(m_context, m_deviceIndex, OHMD_PATH);
}
-void GHOST_OpenHMDManager::getRotationQuat(float orientation[4]) const
+bool GHOST_OpenHMDManager::getRotationQuat(float orientation[4]) const
{
if (!m_available) {
- return;
+ return false;
}
float tmp[4];
- ohmd_device_getf(m_device, OHMD_ROTATION_QUAT, tmp);
+ if (ohmd_device_getf(m_device, OHMD_ROTATION_QUAT, tmp) < 0)
+ return false;
orientation[0] = tmp[3];
orientation[1] = tmp[0];
orientation[2] = tmp[1];
orientation[3] = tmp[2];
+
+ return true;
}
void GHOST_OpenHMDManager::getLeftEyeGLModelviewMatrix(float mat[16]) const
diff --git a/intern/ghost/intern/GHOST_OpenHMDManager.h b/intern/ghost/intern/GHOST_OpenHMDManager.h
index e87bd85..20f0537 100644
--- a/intern/ghost/intern/GHOST_OpenHMDManager.h
+++ b/intern/ghost/intern/GHOST_OpenHMDManager.h
@@ -98,7 +98,7 @@ public:
* \param orientation The absolute orientation of the device, as quaternion, in blender format (w,x,y,z)
* Nothing is written if available() is false.
*/
- void getRotationQuat(float orientation[4]) const;
+ bool getRotationQuat(float orientation[4]) const;
/**
* \param mat A "ready to use" OpenGL style 4x4 matrix with a modelview matrix for the left eye of the HMD.
diff --git a/intern/ghost/intern/GHOST_System.cpp b/intern/ghost/intern/GHOST_System.cpp
index 9cd25b9..506a351 100644
--- a/intern/ghost/intern/GHOST_System.cpp
+++ b/intern/ghost/intern/GHOST_System.cpp
@@ -223,6 +223,8 @@ bool GHOST_System::processEvents(bool waitForEvent)
}
#endif
+ (void)waitForEvent; //silence!
+
return anyProcessed;
}
More information about the Bf-blender-cvs
mailing list