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. ********** */

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to