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

Reply via email to