[Bf-blender-cvs] [d81b230] HMD_viewport: Automate selecting HMD device
Julian Eisel
noreply at git.blender.org
Sun Apr 10 19:59:16 CEST 2016
Commit: d81b2309bc2af81bbc444dfa7e577555570ee9f7
Author: Julian Eisel
Date: Sun Apr 10 19:40:21 2016 +0200
Branches: HMD_viewport
https://developer.blender.org/rBd81b2309bc2af81bbc444dfa7e577555570ee9f7
Automate selecting HMD device
This automates setting of HMD device UserPref option a bit, so that it's ready to go without manual adjustments.
We use the last device plugged in on startup (if one is available). On runtime, plugging in a device makes it active if 'None' was previously selected in the UserPref option.
Saving HMD in UserPrefs should also be supported, but can't test.
Also removes EVT_HMD_DEVICENUM_CHANGE and version patch, they're not needed anymore.
===================================================================
M source/blender/blenkernel/BKE_blender.h
M source/blender/editors/interface/resources.c
M source/blender/windowmanager/intern/wm_event_system.c
M source/blender/windowmanager/intern/wm_window.c
M source/blender/windowmanager/wm_event_types.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h
index 3eb1c30..fdb3474 100644
--- a/source/blender/blenkernel/BKE_blender.h
+++ b/source/blender/blenkernel/BKE_blender.h
@@ -42,7 +42,7 @@ extern "C" {
* and keep comment above the defines.
* Use STRINGIFY() rather than defining with quotes */
#define BLENDER_VERSION 277
-#define BLENDER_SUBVERSION 1
+#define BLENDER_SUBVERSION 0
/* Several breakages with 270, e.g. constraint deg vs rad */
#define BLENDER_MINVERSION 270
#define BLENDER_MINSUBVERSION 6
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index b6861e1..b1d2e32 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -2704,10 +2704,6 @@ void init_userdef_do_versions(void)
}
}
- if (!USER_VERSION_ATLEAST(277, 1)) {
- U.hmd_device = 0;
- }
-
/**
* Include next version bump.
*
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 4436889..cc1a103 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -3505,23 +3505,13 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
{
GHOST_TEventOpenHMDData *e = customdata;
- switch (e->subtype) {
- case GHOST_kOrientationUpdate:
- event.type = EVT_HMD_TRANSFORM;
- event.customdata = MEM_mallocN(sizeof(e->orientation), "HMD orientation event data");
- event.customdatafree = true;
- memcpy(event.customdata, e->orientation, sizeof(e->orientation));
- break;
- case GHOST_kDeviceNumChanged:
- event.type = EVT_HMD_DEVICENUM_CHANGE;
- break;
- default:
- BLI_assert(0);
- break;
+ if (e->subtype == GHOST_kOrientationUpdate) {
+ event.type = EVT_HMD_TRANSFORM;
+ event.customdata = MEM_mallocN(sizeof(e->orientation), "HMD orientation event data");
+ event.customdatafree = true;
+ memcpy(event.customdata, e->orientation, sizeof(e->orientation));
+ wm_event_add(win, &event);
}
-
- wm_event_add(win, &event);
-
break;
}
#endif /* WITH_INPUT_HMD */
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index c020131..4ff6cf7 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -1237,6 +1237,25 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr C_void_ptr
WM_event_add_notifier(C, NC_WINDOW | NA_EDITED, NULL);
break;
+ case GHOST_kEventHMD:
+ {
+ GHOST_TEventOpenHMDData *hmdd = data;
+
+ if (hmdd->subtype == GHOST_kDeviceNumChanged) {
+ if (WM_device_HMD_num_devices_get() > 0) {
+ if (U.hmd_device == -1) { /* Only if 'None' item is selected */
+ U.hmd_device = 0; /* last device plugged in */
+ }
+ }
+ else {
+ U.hmd_device = -1;
+ }
+ }
+ else {
+ wm_event_add_ghostevent(wm, win, type, time, data);
+ }
+ break;
+ }
case GHOST_kEventTrackpad:
{
GHOST_TEventTrackpadData *pd = data;
diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h
index 44c7f92..7e7ae7e 100644
--- a/source/blender/windowmanager/wm_event_types.h
+++ b/source/blender/windowmanager/wm_event_types.h
@@ -292,7 +292,6 @@ enum {
/* VR Viewport transform event */
EVT_HMD_TRANSFORM,
- EVT_HMD_DEVICENUM_CHANGE,
/* ********** End of Input devices. ********** */
More information about the Bf-blender-cvs
mailing list