[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