Commit: 67847067b9929b2da56cc9e25425f0f2417bfaf0
Author: Julian Eisel
Date:   Wed Nov 23 17:58:58 2016 +0100
Branches: HMD_viewport
https://developer.blender.org/rB67847067b9929b2da56cc9e25425f0f2417bfaf0

Couple of fix for case no device is available/active

Fixes:
* HMD device option using invalid value
* HMD view drawing on-screen info and using wrong matrices
* Hardly usable 3D view due to projection and modelview matrix being unit 
matrices
All issues where only visible when the HMD device option is set to 'None'

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

M       source/blender/editors/interface/resources.c
M       source/blender/editors/space_view3d/view3d_draw.c

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

diff --git a/source/blender/editors/interface/resources.c 
b/source/blender/editors/interface/resources.c
index 65ef3b7..06902bd 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -2767,7 +2767,7 @@ void init_userdef_do_versions(void)
         */
        {
 #ifdef WITH_INPUT_HMD
-               if (WM_device_HMD_num_devices_get() > -1) {
+               if (WM_device_HMD_num_devices_get() > 0) {
                        U.hmd_settings.device = 0;
                }
                else
diff --git a/source/blender/editors/space_view3d/view3d_draw.c 
b/source/blender/editors/space_view3d/view3d_draw.c
index d1cde5b..2701327 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -3628,18 +3628,21 @@ static bool view3d_stereo3d_active(const bContext *C, 
Scene *scene, View3D *v3d,
 
 static bool view3d_hmd_view_active(wmWindowManager *wm, wmWindow *win)
 {
-       return ((wm->hmd_view.hmd_win == win) &&
-               (wm->hmd_view.hmd_win->screen->is_hmd_running) &&
-               (U.hmd_settings.device > -1));
+       return ((wm->hmd_view.hmd_win == win) && 
(wm->hmd_view.hmd_win->screen->is_hmd_running));
 }
 
 static void view3d_hmd_view_get_matrices(
         RegionView3D *rv3d, const bool is_left,
         float r_modelviewmat[4][4], float r_projectionmat[4][4])
 {
+       const bool has_device = U.hmd_settings.device > -1;
        const bool use_device_rot = U.hmd_settings.flag & 
USER_HMD_USE_DEVICE_ROT;
 
-       if (use_device_rot) {
+       if (!has_device) {
+               copy_m4_m4(r_modelviewmat, rv3d->viewmat);
+               copy_m4_m4(r_projectionmat, rv3d->winmat);
+       }
+       else if (use_device_rot) {
                WM_device_HMD_modelview_matrix_get(is_left, r_modelviewmat);
                WM_device_HMD_projection_matrix_get(is_left, r_projectionmat);

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

Reply via email to