Workbench: Depth Of Field: Add toggle option in shading popover

Pretty straight forward. Just an option to turn the DoF per viewport.
Default is off as in 2.79.
This commit is contained in:
Clément Foucault 2019-01-25 21:03:50 +01:00
parent 3223644d14
commit c1814d593d
4 changed files with 14 additions and 1 deletions

View File

@ -4593,6 +4593,10 @@ class VIEW3D_PT_shading_options(Panel):
sub.prop(shading, "curvature_ridge_factor", text="Ridge")
sub.prop(shading, "curvature_valley_factor", text="Valley")
row = col.row()
row.active = not shading.show_xray
row.prop(shading, "use_dof", text="Depth Of Field")
if shading.type in {'WIREFRAME', 'SOLID'}:
row = layout.split()
row.prop(shading, "show_object_outline")

View File

@ -134,7 +134,9 @@ void workbench_dof_engine_init(WORKBENCH_Data *vedata, Object *camera)
WORKBENCH_PrivateData *wpd = stl->g_data;
WORKBENCH_FramebufferList *fbl = vedata->fbl;
if (camera == NULL) {
if ((wpd->shading.flag & V3D_SHADING_DEPTH_OF_FIELD) == 0 ||
(camera == NULL))
{
wpd->dof_enabled = false;
return;
}

View File

@ -439,6 +439,7 @@ enum {
V3D_SHADING_XRAY_BONE = (1 << 8),
V3D_SHADING_WORLD_ORIENTATION = (1 << 9),
V3D_SHADING_BACKFACE_CULLING = (1 << 10),
V3D_SHADING_DEPTH_OF_FIELD = (1 << 11),
};
/* View3DShading->color_type */

View File

@ -2594,6 +2594,12 @@ static void rna_def_space_view3d_shading(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
prop = RNA_def_property(srna, "use_dof", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_SHADING_DEPTH_OF_FIELD);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_ui_text(prop, "Depth Of Field", "Use depth of field on viewport using the values from the active camera");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
prop = RNA_def_property(srna, "use_scene_lights", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flag", V3D_SHADING_SCENE_LIGHTS);
RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);