[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