[Bf-blender-cvs] [9ce9540] HMD_viewport: Move HMD options to User Preferences

Julian Eisel noreply at git.blender.org
Fri Nov 11 17:47:01 CET 2016


Commit: 9ce9540afd41ea1e069b54867ce45297fa90a62c
Author: Julian Eisel
Date:   Fri Nov 11 17:45:46 2016 +0100
Branches: HMD_viewport
https://developer.blender.org/rB9ce9540afd41ea1e069b54867ce45297fa90a62c

Move HMD options to User Preferences

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

M	release/scripts/startup/bl_ui/properties_render_layer.py
M	release/scripts/startup/bl_ui/space_userpref.py
M	source/blender/blenkernel/intern/scene.c
M	source/blender/editors/interface/resources.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesdna/DNA_userdef_types.h
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/windowmanager/intern/wm_device.c
M	source/blender/windowmanager/intern/wm_operators.c
M	source/blender/windowmanager/intern/wm_window.c

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

diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py
index 32f1be1..a9602cc 100644
--- a/release/scripts/startup/bl_ui/properties_render_layer.py
+++ b/release/scripts/startup/bl_ui/properties_render_layer.py
@@ -247,16 +247,7 @@ class RENDERLAYER_PT_hmd(RenderLayerButtonsPanel, Panel):
         row.operator("wm.hmd_view_toggle", text=text_win)
         row.operator("wm.hmd_session_run", text=text_run, icon=icon)
 
-        row = layout.row()
-        row.prop(scene, "hmd_camlock")
-        row.prop(scene, "use_hmd_view_lensdist", text="Lens Distortion")
-
         layout.prop(scene, "hmd_view_shade", text="Shading")
-        layout.prop(scene, "use_hmd_device_ipd")
-
-        col = layout.column()
-        col.active = not scene.use_hmd_device_ipd
-        col.prop(scene, "hmd_custom_ipd")
 
 
 if __name__ == "__main__":  # only for live edit.
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index 992696d..86d1753 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -436,7 +436,13 @@ class USERPREF_PT_system(Panel):
         col.separator()
 
         col.label(text="Head Mounted Displays:")
-        col.prop(system, "hmd_device")
+        col.prop(system, "hmd_device", text="Device")
+        col.prop(system, "use_hmd_view_lensdist", text="Lens Distortion")
+        col.prop(system, "use_hmd_rotation")
+        col.prop(system, "use_hmd_device_ipd")
+        subcol = col.column()
+        subcol.active = not system.use_hmd_device_ipd
+        subcol.prop(system, "hmd_custom_ipd")
 
         # 2. Column
         column = split.column()
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 2c1d4bd..4ff3658 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -2591,7 +2591,5 @@ int BKE_scene_multiview_num_videos_get(const RenderData *rd)
 void BKE_scene_hmd_settings_default_init(Scene *scene)
 {
 	scene->hmd_settings.view_shade = OB_MATERIAL;
-	scene->hmd_settings.flag |= (HMDVIEW_USE_LENSDIST_FX | HMDVIEW_USE_DEVICE_IPD);
-	scene->hmd_settings.custom_ipd = 0.061f;
 }
 #endif
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index 194c5c8..ed0a4ee 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -2751,7 +2751,9 @@ void init_userdef_do_versions(void)
 	}
 
 	if (!USER_VERSION_ATLEAST(278, 2)) {
-		U.hmd_device = -1;
+		U.hmd_settings.device = -1;
+		U.hmd_settings.flag = (USER_HMD_USE_DEVICE_IPD | USER_HMD_USE_DEVICE_ROT | USER_HMD_USE_LENSDIST_FX);
+		U.hmd_settings.custom_ipd = 0.061f;
 	}
 
 	/**
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 850d946..7a38409 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -3628,7 +3628,9 @@ static bool view3d_stereo3d_active(const bContext *C, Scene *scene, View3D *v3d,
 
 static bool view3d_hmd_view_active(wmWindowManager *wm, wmWindow *win, Scene *scene)
 {
-	return (wm->win_hmd == win && (scene->hmd_settings.flag & HMDVIEW_SESSION_RUNNING) && (U.hmd_device > -1));
+	return ((wm->win_hmd == win) &&
+	        (scene->hmd_settings.flag & HMDVIEW_SESSION_RUNNING) &&
+	        (U.hmd_settings.device > -1));
 }
 
 static void view3d_hmd_view_setup(Scene *scene, View3D *v3d, ARegion *ar)
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 240ada0..8b5f79a 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1582,17 +1582,11 @@ typedef struct DisplaySafeAreas {
 struct HMDViewSettings {
 	char view_shade; /* rna_enum_viewport_shade_items */
 	char flag, pad[2];
-	float custom_ipd;
-	/* Set while using custom_ipd (HMDVIEW_USE_DEVICE_IPD) so we can reset to device IPD */
-	float init_ipd;
 };
 
 /* HMDViewSettings.flag */
 enum {
 	HMDVIEW_SESSION_RUNNING = (1 << 0),
-	HMDVIEW_IGNORE_ROT      = (1 << 1),
-	HMDVIEW_USE_LENSDIST_FX = (1 << 2),
-	HMDVIEW_USE_DEVICE_IPD  = (1 << 3),
 };
 
 /* *************************************************************** */
diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h
index ce82e0d..71d1988 100644
--- a/source/blender/makesdna/DNA_userdef_types.h
+++ b/source/blender/makesdna/DNA_userdef_types.h
@@ -430,6 +430,21 @@ typedef struct WalkNavigation {
 	short pad[3];
 } WalkNavigation;
 
+struct HMDSettings {
+	short device; /* HMD device index */
+	char flag, pad;
+	float custom_ipd;
+	/* Set while using custom_ipd (USER_HMD_USE_DEVICE_IPD) so we can reset to device IPD */
+	float init_ipd;
+};
+
+/* HMDViewSettings.flag */
+enum {
+	USER_HMD_USE_DEVICE_ROT  = (1 << 0),
+	USER_HMD_USE_LENSDIST_FX = (1 << 1),
+	USER_HMD_USE_DEVICE_IPD  = (1 << 2),
+};
+
 typedef struct UserDef {
 	/* UserDef has separate do-version handling, and can be read from other files */
 	int versionfile, subversionfile;
@@ -568,10 +583,10 @@ typedef struct UserDef {
 
 	struct WalkNavigation walk_navigation;
 
-	short opensubdiv_compute_type;
+	short opensubdiv_compute_type, pad3[3];
 
-	short hmd_device; /* HMD device index */
-	char pad5[4];
+	struct HMDSettings hmd_settings;
+	int pad5;
 } UserDef;
 
 extern UserDef U; /* from blenkernel blender.c */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 71f1d03..75144b7 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -733,13 +733,6 @@ static void rna_Scene_volume_set(PointerRNA *ptr, float value)
 
 
 #ifdef WITH_INPUT_HMD
-static void rna_Scene_hmd_camlock_update(
-        struct Main *UNUSED(main), struct Scene *scene,
-        struct PointerRNA *UNUSED(ptr))
-{
-	Object *camera_ob = scene->camera;
-	DAG_id_tag_update(&camera_ob->id, OB_RECALC_OB);
-}
 
 static void rna_Scene_hmd_view_shade_set(PointerRNA *ptr, int value)
 {
@@ -761,92 +754,6 @@ static void rna_Scene_hmd_view_shade_set(PointerRNA *ptr, int value)
 	}
 }
 
-static void rna_Scene_hmd_view_lensdist_set(PointerRNA *ptr, int value)
-{
-	Scene *scene = ptr->data;
-	wmWindowManager *wm = G.main->wm.first;
-	wmWindow *win = wm->win_hmd;
-
-	if (value) {
-		scene->hmd_settings.flag |= HMDVIEW_USE_LENSDIST_FX;
-	}
-	else {
-		scene->hmd_settings.flag &= ~HMDVIEW_USE_LENSDIST_FX;
-	}
-
-	if (win) {
-		for (ScrArea *sa = win->screen->areabase.first; sa; sa = sa->next) {
-			if (sa->spacetype == SPACE_VIEW3D) {
-				View3D *v3d = sa->spacedata.first;
-				if (value) {
-					v3d->fx_settings.fx_flag |= GPU_FX_FLAG_LensDist;
-				}
-				else {
-					v3d->fx_settings.fx_flag &= ~GPU_FX_FLAG_LensDist;
-				}
-				ED_area_tag_redraw(sa);
-				break;
-			}
-		}
-	}
-}
-
-void rna_Scene_use_hmd_device_ipd_set(PointerRNA *ptr, int value)
-{
-	Scene *scene = ptr->data;
-	if (value) {
-		scene->hmd_settings.flag |= HMDVIEW_USE_DEVICE_IPD;
-		WM_device_HMD_IPD_set(scene->hmd_settings.init_ipd);
-	}
-	else {
-		scene->hmd_settings.flag &= ~HMDVIEW_USE_DEVICE_IPD;
-		scene->hmd_settings.init_ipd = WM_device_HMD_IPD_get();
-		WM_device_HMD_IPD_set(scene->hmd_settings.custom_ipd);
-	}
-}
-
-static int rna_Scene_use_hmd_device_ipd_editeable(PointerRNA *ptr, const char **r_info)
-{
-	Scene *scene = ptr->data;
-	bool editable = true;
-
-	if (U.hmd_device == -1) {
-		*r_info = "No valid HMD device selected (see User Preferences)";
-		editable = false;
-	}
-	else {
-		const bool has_active_device = WM_device_HMD_current_get() >= 0;
-
-		if (!has_active_device) {
-			/* temporary activate device to see if it returns an IPD */
-			WM_device_HMD_state_set(U.hmd_device, true);
-		}
-		if (WM_device_HMD_IPD_get() == -1.0f) {
-			*r_info = "Active HMD device doesn't return valid interocular distance";
-			editable = false;
-		}
-		if (!has_active_device) {
-			WM_device_HMD_state_set(U.hmd_device, false);
-		}
-	}
-
-	if (!editable) {
-		scene->hmd_settings.flag |= HMDVIEW_USE_DEVICE_IPD;
-		return false;
-	}
-
-	return PROP_EDITABLE;
-}
-
-void rna_Scene_hmd_custom_ipd_set(PointerRNA *ptr, float value)
-{
-	Scene *scene = ptr->data;
-	scene->hmd_settings.custom_ipd = value;
-	if ((scene->hmd_settings.flag & HMDVIEW_USE_DEVICE_IPD) == 0) {
-		WM_device_HMD_IPD_set(value);
-	}
-}
-
 #endif /* WITH_INPUT_HMD */
 
 static void rna_Scene_framelen_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
@@ -7400,38 +7307,11 @@ void RNA_def_scene(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "HMD Running", "");
 	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 
-	prop = RNA_def_property(srna, "hmd_camlock", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_negative_sdna(prop, NULL, "hmd_settings.flag", HMDVIEW_IGNORE_ROT);
-	RNA_def_property_ui_text(prop, "HMD Rotation", "Use the rotation of a head mounted display if available");
-	RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_Scene_hmd_camlock_update");
-
 	prop = RNA_def_property(srna, "hmd_view_shade", PROP_ENUM, PROP_NONE);
 	RNA_def_property_enum_sdna(prop, NULL, "hmd_settings.view_shade");
 	RNA_def_property_enum_items(prop, rna_enum_viewport_shade_items);
 	RNA_def_property_enum_funcs(prop, NULL, "rna_Scene_hmd_view_shade_set", NULL);
 	RNA_def_property_ui_text(prop, "HMD View Shading", "Method to draw in the HMD view");
-
-	prop = RNA_def_property(srna, "use_hmd_view_lensdist", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "hmd_settings.flag", HMDVIEW_USE_LENSDIST_FX);
-	RNA_def_property_boolean_funcs(prop, NULL, "rna_Scene_hmd_view_lensdist_set");
-	RNA_def_property_ui_text(prop, "HMD View Lens Distortion", "Draw the HMD viewport using a distorted lens");
-
-	prop = RNA_def_property(srna, "use_hmd_device_ipd", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "hmd_settings.flag", HMDVIEW_USE_DEVICE_IPD);
-	RNA_def_property_boolean_funcs(prop, NULL, "rna

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list