[Bf-blender-cvs] [c1846b1] HMD_viewport: Move HMD view settings into own scene level struct
Julian Eisel
noreply at git.blender.org
Sun Oct 9 02:43:34 CEST 2016
Commit: c1846b18b17746c5112d64a0b27cbc2f28ee7e1c
Author: Julian Eisel
Date: Sun Oct 9 02:41:43 2016 +0200
Branches: HMD_viewport
https://developer.blender.org/rBc1846b18b17746c5112d64a0b27cbc2f28ee7e1c
Move HMD view settings into own scene level struct
For some reason I placed this in RenderData earlier.
===================================================================
M release/scripts/startup/bl_ui/properties_render_layer.py
M source/blender/blenloader/intern/versioning_270.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/gpu/intern/gpu_compositing.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesrna/intern/rna_scene.c
M source/blender/windowmanager/intern/wm_operators.c
M source/blender/windowmanager/intern/wm_stereo.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py
index 0ca1a97..66a0255 100644
--- a/release/scripts/startup/bl_ui/properties_render_layer.py
+++ b/release/scripts/startup/bl_ui/properties_render_layer.py
@@ -240,9 +240,9 @@ class RENDERLAYER_PT_views(RenderLayerButtonsPanel, Panel):
row.operator("wm.hmd_view_toggle", text=text_win)
row.operator("wm.hmd_session_run", text=text_run, icon=icon)
- col.prop(rd, "hmd_camlock")
- col.prop(rd, "use_hmd_view_lensdist", text="Lens Distortion")
- col.prop(rd, "hmd_view_shade", text="Shading")
+ col.prop(scene, "hmd_camlock")
+ col.prop(scene, "use_hmd_view_lensdist", text="Lens Distortion")
+ col.prop(scene, "hmd_view_shade", text="Shading")
if __name__ == "__main__": # only for live edit.
diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c
index ca93d2d..d5cb0c2 100644
--- a/source/blender/blenloader/intern/versioning_270.c
+++ b/source/blender/blenloader/intern/versioning_270.c
@@ -1427,10 +1427,10 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main)
}
{
- if (!DNA_struct_elem_find(fd->filesdna, "RenderData", "char", "hmd_view_shade")) {
+ if (!DNA_struct_elem_find(fd->filesdna, "Scene", "HMDViewSettings", "hmd_settings")) {
for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
- scene->r.hmd_view_shade = OB_MATERIAL;
- scene->r.hmd_fx_flags |= GPU_FX_FLAG_LensDist;
+ scene->hmd_settings.view_shade = OB_MATERIAL;
+ scene->hmd_settings.flag |= HMDVIEW_USE_LENSDIST_FX;
}
}
}
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 2c28011..7f8c139 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -4063,7 +4063,8 @@ void view3d_main_region_draw(const bContext *C, ARegion *ar)
bool render_border, clip_border;
const bool is_hmd_view =
#ifdef WITH_INPUT_HMD
- ((CTX_wm_manager(C)->win_hmd == CTX_wm_window(C)) && (scene->flag & SCE_HMD_RUNNING));
+ ((CTX_wm_manager(C)->win_hmd == CTX_wm_window(C)) &&
+ (scene->hmd_settings.flag & HMDVIEW_SESSION_RUNNING));
#else
false;
#endif
diff --git a/source/blender/gpu/intern/gpu_compositing.c b/source/blender/gpu/intern/gpu_compositing.c
index fd21f13..dd3c974 100644
--- a/source/blender/gpu/intern/gpu_compositing.c
+++ b/source/blender/gpu/intern/gpu_compositing.c
@@ -420,7 +420,7 @@ bool GPU_fx_compositor_initialize_passes(
if (fx_flag & GPU_FX_FLAG_SSAO)
num_passes++;
- if (fx_flag & GPU_FX_FLAG_LensDist)
+ if (fx_flag & GPU_FX_FLAG_LensDist)
num_passes++;
if (!fx->gbuffer) {
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index a7c046d..8ecb3d5 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -766,11 +766,7 @@ typedef struct RenderData {
ListBase views; /* SceneRenderView */
short actview;
short views_format;
- char pad8[2];
-
- /* HMD */
- char hmd_view_shade;
- char hmd_fx_flags; /* eGPUFXFlags */
+ int pad8;
/* Motion blur shutter */
struct CurveMapping mblur_shutter_curve;
@@ -1569,6 +1565,25 @@ 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 one.
+ */
+struct HMDViewSettings {
+ char view_shade; /* rna_enum_viewport_shade_items */
+ char flag;
+ char pad[2];
+};
+
+/* HMDViewSettings.flag */
+enum {
+ HMDVIEW_SESSION_RUNNING = (1 << 0),
+ HMDVIEW_IGNORE_ROT = (1 << 1),
+ HMDVIEW_USE_LENSDIST_FX = (1 << 2),
+};
+
/* *************************************************************** */
/* Scene ID-Block */
@@ -1660,6 +1675,9 @@ typedef struct Scene {
struct RigidBodyWorld *rigidbody_world;
struct PreviewImage *preview;
+
+ struct HMDViewSettings hmd_settings;
+ int pad2;
} Scene;
/* **************** RENDERDATA ********************* */
@@ -1670,7 +1688,6 @@ typedef struct Scene {
#define SCER_LOCK_FRAME_SELECTION (1 << 1)
/* timeline/keyframe jumping - only selected items (on by default) */
#define SCE_KEYS_NO_SELONLY (1 << 2)
-#define SCE_HMD_RUNNING (1 << 3)
/* mode (int now) */
#define R_OSA 0x0001
@@ -1767,7 +1784,6 @@ typedef struct Scene {
#define R_VIEWPORT_PREVIEW 0x80000
#define R_EXR_CACHE_FILE 0x100000
#define R_MULTIVIEW 0x200000
-#define R_HMD_IGNORE_ROT 0x400000
/* r->stamp */
#define R_STAMP_TIME 0x0001
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 8344d47..e8a9588 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -731,6 +731,67 @@ 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_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)
+{
+ Scene *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;
+ }
+ }
+ }
+}
+
+static void rna_Scene_hmd_view_lensdist_set(PointerRNA *ptr, int value)
+{
+ Scene *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;
+ }
+ }
+ }
+}
+#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;
@@ -916,63 +977,6 @@ static void rna_RenderSettings_stereoViews_begin(CollectionPropertyIterator *ite
rna_iterator_listbase_begin(iter, &rd->views, rna_RenderSettings_stereoViews_skip);
}
-#ifdef WITH_INPUT_HMD
-static void rna_RenderSettings_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_RenderSettings_hmd_view_shade_set(PointerRNA *ptr, int value)
-{
- RenderData *rd = (RenderData *)ptr->data;
- wmWindowManager *wm = G.main->wm.first;
- wmWindow *win = wm->win_hmd;
-
- rd->hmd_view_shade = value;
-
- if (win) {
- ScrArea *sa;
- for (sa = win->screen->areabase.first; sa; sa = sa->next)
- if (sa->spacetype == SPACE_VIEW3D)
- break;
- if (sa) {
- View3D *v3d = sa->spacedata.first;
- v3d->drawtype = value;
- ED_area_tag_redraw(sa);
- }
- }
-}
-
-static void rna_RenderSettings_hmd_view_lensdist_set(PointerRNA *ptr, int value)
-{
- RenderData *rd = (RenderData *)ptr->data;
- wmWindowManager *wm = G.main->wm.first;
- wmWindow *win = wm->win_hmd;
-
- if (value) {
- rd->hmd_fx_flags |= GPU_FX_FLAG_LensDist;
- }
- else {
- rd->hmd_fx_flags &= ~GPU_FX_FLAG_LensDist;
- }
-
- if (win) {
- ScrArea *sa;
- for (sa = win->screen->areabase.first; sa; sa = sa->next)
- if (sa->spacetype == SPACE_VIEW3D)
- break;
- if (sa) {
- View3D *v3d = sa->spacedata.first;
- v3d->fx_settings.fx_flag = rd->hmd_fx_flags;
- ED_area_tag_redraw(sa);
- }
- }
-}
-#endif /* WITH_INPUT_HMD */
-
static char *rna_RenderSettings_path(PointerRNA *UNUSED(ptr))
{
return BLI_sprintfN("render");
@@ -6557,23 +6561,6 @@ static void rna_def_scene_render_data(BlenderRNA *brna)
RNA_def_property_struct_type(prop, "SceneRenderView");
RNA_def_property_ui_text(prop, "Render Views", "");
-#ifdef WITH_INPUT_HMD
- prop = RNA_def_property(srna, "hmd_camlock", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_negative_sdna(prop, NULL, "scemode", R_HMD_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_RenderSettings_hmd_camlock_update");
-
- prop = RNA_def_property(srna, "hmd_view_shade", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_items(prop, rna_enum_viewport_shade_items);
- RNA_def_property_enum_funcs(prop, NULL, "rna_RenderSettings_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_fx_flags", GPU_FX_FLAG_LensDist);
- RNA_def_property_boolean_funcs(prop, NULL, "rna_RenderSettings_hmd_view_lensdist_set");
- RNA_def_property_ui_text(prop, "HMD View Lens Distortion", "Draw the HMD viewport using a distorted lens");
-#endif
-
prop = RNA_def_property(srna, "use_multiview", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "scemode", R_MULTIVIEW);
RNA_def_property_ui_text(prop, "Multiple Views", "Use multiple views in the scene");
@@ -7352,9 +7339,25 @@ void RNA_def_scene(BlenderRNA *brna)
#ifdef WITH_INPUT_HMD
prop = RNA_def_property(srna, "hmd_running", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list