[Bf-blender-cvs] [a29c325] HMD_viewport: Move HMD view shading option to window manager level

Julian Eisel noreply at git.blender.org
Fri Nov 18 00:16:14 CET 2016


Commit: a29c325c834221d5c19af5bc96fcd5050792fa62
Author: Julian Eisel
Date:   Fri Nov 18 00:12:57 2016 +0100
Branches: HMD_viewport
https://developer.blender.org/rBa29c325c834221d5c19af5bc96fcd5050792fa62

Move HMD view shading option to window manager level

Was a bit ugly to have this in scene level, window manager isn't perfect either, but prefer it there.

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/blenkernel/BKE_scene.h
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesdna/DNA_windowmanager_types.h
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/makesrna/intern/rna_wm.c
M	source/blender/windowmanager/intern/wm_draw.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/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 653237f..4b3cb86 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3368,7 +3368,6 @@ class VIEW3D_PT_view3d_hmd_view(Panel):
         layout = self.layout
 
         wm = context.window_manager
-        scene = context.scene
 
         session_running = wm.is_hmd_session_running
         text_win = "Close HMD Window" if wm.has_hmd_window else "Open HMD Window"
@@ -3379,7 +3378,7 @@ class VIEW3D_PT_view3d_hmd_view(Panel):
         row.operator("wm.hmd_view_toggle", text=text_win)
         row.operator("wm.hmd_session_run", text=text_run, icon=icon_run)
 
-        layout.prop(scene, "hmd_view_shade", text="Shading")
+        layout.prop(wm, "hmd_view_shade", text="Shading")
 
 
 class VIEW3D_PT_view3d_motion_tracking(Panel):
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index a008f46..d215295 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -170,10 +170,6 @@ void        BKE_scene_multiview_view_prefix_get(struct Scene *scene, const char
 void        BKE_scene_multiview_videos_dimensions_get(const struct RenderData *rd, const size_t width, const size_t height, size_t *r_width, size_t *r_height);
 int         BKE_scene_multiview_num_videos_get(const struct RenderData *rd);
 
-#ifdef WITH_INPUT_HMD
-void BKE_scene_hmd_settings_default_init(struct Scene *scene);
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 4ff3658..6e1f11c 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -812,10 +812,6 @@ void BKE_scene_init(Scene *sce)
 	sce->toolsettings->gpencil_v2d_align = GP_PROJECT_VIEWSPACE;
 	sce->toolsettings->gpencil_seq_align = GP_PROJECT_VIEWSPACE;
 	sce->toolsettings->gpencil_ima_align = GP_PROJECT_VIEWSPACE;
-
-#ifdef WITH_INPUT_HMD
-	BKE_scene_hmd_settings_default_init(sce);
-#endif
 }
 
 Scene *BKE_scene_add(Main *bmain, const char *name)
@@ -2586,10 +2582,3 @@ int BKE_scene_multiview_num_videos_get(const RenderData *rd)
 		return BKE_scene_multiview_num_views_get(rd);
 	}
 }
-
-#ifdef WITH_INPUT_HMD
-void BKE_scene_hmd_settings_default_init(Scene *scene)
-{
-	scene->hmd_settings.view_shade = OB_MATERIAL;
-}
-#endif
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 4520ce6..d655524 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -6127,7 +6127,7 @@ static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm)
 	id_us_ensure_real(&wm->id);
 	link_list(fd, &wm->windows);
 #ifdef WITH_INPUT_HMD
-	wm->win_hmd = newdataadr(fd, wm->win_hmd);
+	wm->hmd_view.hmd_win = newdataadr(fd, wm->hmd_view.hmd_win);
 #endif
 	
 	for (win = wm->windows.first; win; win = win->next) {
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index 147efe0..9b97f5a 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -1469,9 +1469,9 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
 
 	{
 #ifdef WITH_INPUT_HMD
-		if (!DNA_struct_elem_find(fd->filesdna, "Scene", "HMDViewSettings", "hmd_settings")) {
-			for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
-				BKE_scene_hmd_settings_default_init(scene);
+		if (!DNA_struct_elem_find(fd->filesdna, "wmWindowManager", "HMDViewInfo", "hmd_view")) {
+			for (wmWindowManager *wm = main->wm.first; wm; wm = wm->id.next) {
+				wm->hmd_view.view_shade = OB_MATERIAL;
 			}
 		}
 #endif
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index cde6aba..2ed28ea 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -2449,7 +2449,7 @@ static int screen_maximize_area_poll(bContext *C)
 {
 	return ED_operator_areaactive(C) &&
 #ifdef WITH_INPUT_HMD
-	        !(CTX_wm_manager(C)->win_hmd == CTX_wm_window(C));
+	        !(CTX_wm_manager(C)->hmd_view.hmd_win == CTX_wm_window(C));
 #else
 	        true;
 #endif
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 00fe5ea..aa0a797 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -3628,8 +3628,8 @@ static bool view3d_stereo3d_active(const bContext *C, Scene *scene, View3D *v3d,
 
 static bool view3d_hmd_view_active(wmWindowManager *wm, wmWindow *win)
 {
-	return ((wm->win_hmd == win) &&
-	        (wm->win_hmd->screen->is_hmd_running) &&
+	return ((wm->hmd_view.hmd_win == win) &&
+	        (wm->hmd_view.hmd_win->screen->is_hmd_running) &&
 	        (U.hmd_settings.device > -1));
 }
 
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 765dd73..5b752a4 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1573,17 +1573,6 @@ typedef struct DisplaySafeAreas {
 	float action_center[2];
 } DisplaySafeAreas;
 
-/* ------------------------------------------- */
-/* HMD View Settings */
-
-/**
- * Settings that will be applied to the already opened HMD view or when opening it.
- */
-struct HMDViewSettings {
-	char view_shade; /* rna_enum_viewport_shade_items */
-	char pad[3];
-};
-
 /* *************************************************************** */
 /* Scene ID-Block */
 
@@ -1675,9 +1664,6 @@ typedef struct Scene {
 	struct RigidBodyWorld *rigidbody_world;
 
 	struct PreviewImage *preview;
-
-	struct HMDViewSettings hmd_settings;
-	int pad2;
 } Scene;
 
 /* **************** RENDERDATA ********************* */
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index 1363343..2438944 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -122,18 +122,23 @@ typedef struct ReportTimerInfo {
 
 /* reports need to be before wmWindowManager */
 
+
 #ifndef WITH_INPUT_HMD
 #  ifdef __GNUC__
-#    define win_hmd win_hmd __attribute__ ((deprecated))
+#    define hmd_view hmd_view __attribute__ ((deprecated))
 #  endif
 #endif
 
+struct HMDViewInfo {
+	struct wmWindow *hmd_win;         /* HMD (virtual reality) window. Stored to avoid lookups. */
+	char view_shade, pad[7]; /* rna_enum_viewport_shade_items */
+};
+
 /* windowmanager is saved, tag WMAN */
 typedef struct wmWindowManager {
 	ID id;
 
 	struct wmWindow *windrawable, *winactive;  /* separate active from drawable */
-	struct wmWindow *win_hmd;         /* HMD (virtual reality) window. Stored to avoid lookups. */
 	ListBase windows;
 
 	int initialized;                  /* set on file read */
@@ -160,12 +165,14 @@ typedef struct wmWindowManager {
 	ListBase timers;                  /* active timers */
 	struct wmTimer *autosavetimer;    /* timer for auto save */
 
+	struct HMDViewInfo hmd_view;
+
 	char is_interface_locked;		/* indicates whether interface is locked for user interaction */
 	char par[7];
 } wmWindowManager;
 
-#ifdef win_hmd
-#  undef win_hmd
+#ifdef hmd_view
+#  undef hmd_view
 #endif
 
 /* wmWindowManager.initialized */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 276b5b3..60378e2 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -731,31 +731,6 @@ static void rna_Scene_volume_set(PointerRNA *ptr, float value)
 		BKE_sound_set_scene_volume(scene, value);
 }
 
-
-#ifdef WITH_INPUT_HMD
-
-static void rna_Scene_hmd_view_shade_set(PointerRNA *ptr, int value)
-{
-	Scene *scene = ptr->data;
-	wmWindowManager *wm = G.main->wm.first;
-	wmWindow *win = wm->win_hmd;
-
-	scene->hmd_settings.view_shade = value;
-
-	if (win) {
-		for (ScrArea *sa = win->screen->areabase.first; sa; sa = sa->next) {
-			if (sa->spacetype == SPACE_VIEW3D) {
-				View3D *v3d = sa->spacedata.first;
-				v3d->drawtype = value;
-				ED_area_tag_redraw(sa);
-				break;
-			}
-		}
-	}
-}
-
-#endif /* WITH_INPUT_HMD */
-
 static void rna_Scene_framelen_update(Main *UNUSED(bmain), Scene *scene, PointerRNA *UNUSED(ptr))
 {
 	scene->r.framelen = (float)scene->r.framapto / (float)scene->r.images;
@@ -7300,14 +7275,6 @@ void RNA_def_scene(BlenderRNA *brna)
 	RNA_def_property_struct_type(prop, "Depsgraph");
 	RNA_def_property_ui_text(prop, "Dependency Graph", "Dependencies in the scene data");
 
-#ifdef WITH_INPUT_HMD
-	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");
-#endif
-
 	/* Nestled Data  */
 	/* *** Non-Animated *** */
 	RNA_define_animate_sdna(false);
diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c
index 74ec038..cc3857d 100644
--- a/source/blender/makesrna/intern/rna_userdef.c
+++ b/source/blender/makesrna/intern/rna_userdef.c
@@ -676,7 +676,7 @@ static void rna_userdef_hmd_camlock_update(
 static void rna_userdef_hmd_view_lensdist_set(PointerRNA *UNUSED(ptr), int value)
 {
 	wmWindowManager *wm = G.main->wm.first;
-	wmWindow *win = wm->win_hmd;
+	wmWindow *win = wm->hmd_view.hmd_win;
 
 	if (value) {
 		U.hmd_settings.flag |= USER_HMD_USE_LENSDIST_FX;
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c
index 37fe1f5..8b41e3d 100644
--- a/source/blender/makesrna/intern/rna_wm.c
+++ b/source/blender/makesrna/intern/rna_wm.c
@@ -459,6 +459,10 @@ EnumPropertyItem rna_enum_wm_report_items[] = {
 
 #include <assert.h>
 
+#include "DNA_view3d_types.h"
+
+#

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list