[Bf-blender-cvs] [07706a28d0] HMD_viewport: "Only Render" option for HMD view

Julian Eisel noreply at git.blender.org
Sun Mar 5 20:38:06 CET 2017


Commit: 07706a28d083f272de8d08126f6aa5b7f78981b0
Author: Julian Eisel
Date:   Sun Mar 5 20:36:30 2017 +0100
Branches: HMD_viewport
https://developer.blender.org/rB07706a28d083f272de8d08126f6aa5b7f78981b0

"Only Render" option for HMD view

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/makesdna/DNA_windowmanager_types.h
M	source/blender/makesrna/intern/rna_wm.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 3bcfb9a1f6..e8ebc5b1e3 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3412,7 +3412,10 @@ class VIEW3D_PT_view3d_hmd_view(Panel):
         row.operator("wm.hmd_session_run", text=text_run, icon=icon_run)
         layout.prop(view, "use_hmd_mirror")
 
+        layout.separator()
+
         layout.prop(wm, "hmd_view_shade", text="Shading")
+        layout.prop(wm, "hmd_view_show_only_render")
 
 
 class VIEW3D_PT_view3d_motion_tracking(Panel):
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index 24389440b9..4efb283849 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -131,7 +131,14 @@ typedef struct ReportTimerInfo {
 
 struct HMDViewInfo {
 	struct wmWindow *hmd_win;         /* HMD (virtual reality) window. Stored to avoid lookups. */
-	char view_shade, pad[7]; /* rna_enum_viewport_shade_items */
+
+	char view_shade; /* rna_enum_viewport_shade_items */
+	char flag;
+	char pad[6];
+};
+
+enum {
+	HMD_VIEW_RENDER_OVERRIDE = (1 << 0), /* only render (equivalent to V3D_RENDER_OVERRIDE) */
 };
 
 /* windowmanager is saved, tag WMAN */
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index f502025da3..90b592f16e 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -976,6 +976,31 @@ static void rna_hmd_view_shade_set(PointerRNA *ptr, int value)
 	}
 }
 
+static void rna_hmd_view_show_only_render_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr)
+{
+	wmWindowManager *wm = ptr->data;
+	wmWindow *win = wm->hmd_view.hmd_win;
+
+	if (win) {
+		for (ScrArea *sa = win->screen->areabase.first; sa; sa = sa->next) {
+			if (sa->spacetype == SPACE_VIEW3D) {
+				View3D *v3d = sa->spacedata.first;
+
+				if (wm->hmd_view.flag & HMD_VIEW_RENDER_OVERRIDE) {
+					v3d->flag2 |= V3D_RENDER_OVERRIDE;
+				}
+				else {
+					v3d->flag2 &= ~V3D_RENDER_OVERRIDE;
+				}
+
+				ED_area_tag_redraw(sa);
+				/* we assume one 3D view only */
+				break;
+			}
+		}
+	}
+}
+
 #endif /* WITH_INPUT_HMD */
 
 #ifdef WITH_PYTHON
@@ -2069,6 +2094,11 @@ static void rna_def_windowmanager(BlenderRNA *brna)
 	RNA_def_property_enum_items(prop, rna_enum_viewport_shade_items);
 	RNA_def_property_enum_funcs(prop, NULL, "rna_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, "hmd_view_show_only_render", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "hmd_view.flag", HMD_VIEW_RENDER_OVERRIDE);
+	RNA_def_property_ui_text(prop, "Only Render", "Display only objects which will be rendered");
+	RNA_def_property_update(prop, 0, "rna_hmd_view_show_only_render_update");
 #endif
 
 	RNA_api_wm(srna);




More information about the Bf-blender-cvs mailing list