[Bf-blender-cvs] [6784706] HMD_viewport: Couple of fix for case no device is available/active
Julian Eisel
noreply at git.blender.org
Wed Nov 23 23:14:43 CET 2016
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);
More information about the Bf-blender-cvs
mailing list