[Bf-blender-cvs] [5b8c1da] HMD_viewport: Fix HMD update events missing window

Julian Eisel noreply at git.blender.org
Wed Mar 16 16:11:05 CET 2016


Commit: 5b8c1da8456b86f1cf38cba4a0a9549144d1fb73
Author: Julian Eisel
Date:   Fri Mar 11 04:43:33 2016 +0100
Branches: HMD_viewport
https://developer.blender.org/rB5b8c1da8456b86f1cf38cba4a0a9549144d1fb73

Fix HMD update events missing window

===================================================================

M	intern/ghost/GHOST_Types.h
M	intern/ghost/intern/GHOST_EventOpenHMD.h
M	intern/ghost/intern/GHOST_OpenHMDManager.cpp
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/wm_event_types.h

===================================================================

diff --git a/intern/ghost/GHOST_Types.h b/intern/ghost/GHOST_Types.h
index 62c44ac..052a5a5 100644
--- a/intern/ghost/GHOST_Types.h
+++ b/intern/ghost/GHOST_Types.h
@@ -201,7 +201,7 @@ typedef enum {
 	GHOST_kEventImeComposition,
 	GHOST_kEventImeCompositionEnd,
 
-	GHOST_kEventOpenHMD,
+	GHOST_kEventHMD, // HMD - head mounted device (virtual reality)
 
 	GHOST_kNumEventTypes
 } GHOST_TEventType;
diff --git a/intern/ghost/intern/GHOST_EventOpenHMD.h b/intern/ghost/intern/GHOST_EventOpenHMD.h
index 8149447..dab24ca 100644
--- a/intern/ghost/intern/GHOST_EventOpenHMD.h
+++ b/intern/ghost/intern/GHOST_EventOpenHMD.h
@@ -7,7 +7,7 @@ class GHOST_EventOpenHMD : public GHOST_Event
 {
 public:
     GHOST_EventOpenHMD (GHOST_TUns64 time, GHOST_IWindow *window)
-		: GHOST_Event(time, GHOST_kEventOpenHMD, window)
+		: GHOST_Event(time, GHOST_kEventHMD, window)
 	{
 		m_data = &m_orientationData;
 	}
diff --git a/intern/ghost/intern/GHOST_OpenHMDManager.cpp b/intern/ghost/intern/GHOST_OpenHMDManager.cpp
index fe9f171..9461e53 100644
--- a/intern/ghost/intern/GHOST_OpenHMDManager.cpp
+++ b/intern/ghost/intern/GHOST_OpenHMDManager.cpp
@@ -55,11 +55,16 @@ GHOST_OpenHMDManager::~GHOST_OpenHMDManager()
 bool GHOST_OpenHMDManager::processEvents()
 {
 	if (m_available) {
-        ohmd_ctx_update(m_context);
+		GHOST_IWindow *window = m_system.getWindowManager()->getActiveWindow();
+
+		if (!window)
+			return false;
+
+		ohmd_ctx_update(m_context);
 
         GHOST_TUns64 now = m_system.getMilliSeconds();
 
-        GHOST_EventOpenHMD *event = new GHOST_EventOpenHMD(now, m_system.getWindowManager()->getActiveWindow());
+        GHOST_EventOpenHMD *event = new GHOST_EventOpenHMD(now, window);
         GHOST_TEventOpenHMDData* data = (GHOST_TEventOpenHMDData*) event->getData();
         float quat[4];
 
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 60ec983..09cc171 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -3500,17 +3500,17 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
 			break;
 		}
 
-        case GHOST_kEventOpenHMD:
-        {
-            GHOST_TEventOpenHMDData *e = customdata;
+		case GHOST_kEventHMD:
+		{
+			GHOST_TEventOpenHMDData *e = customdata;
 
-            event.type = EVT_HMD_TRANSFORM;
-            event.customdata = e->orientation;
+			event.type = EVT_HMD_TRANSFORM;
+			event.customdata = e->orientation;
 
-            wm_event_add(win, &event);
+			wm_event_add(win, &event);
 
-            break;
-        }
+			break;
+		}
 
 		case GHOST_kEventUnknown:
 		case GHOST_kNumEventTypes:
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index b5bb5ee..7e7ae7e 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -291,7 +291,7 @@ enum {
 	NDOF_LAST,
 
 	/* VR Viewport transform event */
-    EVT_HMD_TRANSFORM,
+	EVT_HMD_TRANSFORM,
 
 	/* ********** End of Input devices. ********** */




More information about the Bf-blender-cvs mailing list