[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