Commit: 0751953efd14118cc6eaf04ca9fb7a860f2cb5ce Author: Julian Eisel Date: Tue Mar 22 01:25:01 2016 +0100 Branches: HMD_viewport https://developer.blender.org/rB0751953efd14118cc6eaf04ca9fb7a860f2cb5ce
Option for HMD view shading mode =================================================================== M release/scripts/startup/bl_ui/properties_render_layer.py M source/blender/blenloader/intern/versioning_270.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 =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py b/release/scripts/startup/bl_ui/properties_render_layer.py index af722c70..8fbf6d7 100644 --- a/release/scripts/startup/bl_ui/properties_render_layer.py +++ b/release/scripts/startup/bl_ui/properties_render_layer.py @@ -239,6 +239,7 @@ class RENDERLAYER_PT_views(RenderLayerButtonsPanel, Panel): row.operator("wm.hmd_session_run", text=text_run, icon=icon) col.prop(rd, "hmd_camlock") + col.prop(rd, "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 def1eab..1e820fe 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -1068,4 +1068,12 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *main) } } } + + { + for (Scene *scene = main->scene.first; scene; scene = scene->id.next) { + if (scene->r.hmd_view_shade == 0) { + scene->r.hmd_view_shade = OB_MATERIAL; + } + } + } } diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 954e4f4..2dba549 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -730,7 +730,10 @@ typedef struct RenderData { ListBase views; /* SceneRenderView */ short actview; short views_format; - short pad8[2]; + char pad8[3]; + + /* HMD */ + char hmd_view_shade; /* Motion blur shutter */ struct CurveMapping mblur_shutter_curve; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index a897c80..2a2744c 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -411,7 +411,10 @@ EnumPropertyItem rna_enum_bake_pass_filter_type_items[] = { #include "DNA_node_types.h" #include "DNA_object_types.h" #include "DNA_mesh_types.h" +#include "DNA_screen_types.h" +#include "DNA_space_types.h" #include "DNA_text_types.h" +#include "DNA_view3d_types.h" #include "RNA_access.h" @@ -439,6 +442,7 @@ EnumPropertyItem rna_enum_bake_pass_filter_type_items[] = { #include "ED_mesh.h" #include "ED_keyframing.h" #include "ED_image.h" +#include "ED_screen.h" #ifdef WITH_FREESTYLE #include "FRS_freestyle.h" @@ -816,6 +820,27 @@ static void rna_RenderSettings_hmd_camlock_update( 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 char *rna_RenderSettings_path(PointerRNA *UNUSED(ptr)) { return BLI_sprintfN("render"); @@ -5959,6 +5984,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna) 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_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"); diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index 2216a4b..7a56474 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -5143,10 +5143,17 @@ static int wm_hmd_view_open_invoke(bContext *C, wmOperator *UNUSED(op), const wm } /* open */ else { + Scene *scene = CTX_data_scene(C); rcti rect = {0, prevwin->sizex, 0, prevwin->sizey}; win = WM_window_open_temp(C, &rect, WM_WINDOW_HMD); - ED_screen_state_toggle(C, win, win->screen->areabase.first, SCREENFULL); wm->win_hmd = win; + + /* prepare area */ + ScrArea *sa = win->screen->areabase.first; + View3D *v3d = sa->spacedata.first; + BLI_assert(sa->spacetype == SPACE_VIEW3D); + ED_screen_state_toggle(C, win, sa, SCREENFULL); + v3d->drawtype = scene->r.hmd_view_shade; } return OPERATOR_FINISHED; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs