[Bf-blender-cvs] [f18213ae3a3] blender2.8: Workbench: drawtype_* => drawtype_options, drawtype_lighting
Jeroen Bakker
noreply at git.blender.org
Fri Apr 20 14:54:36 CEST 2018
Commit: f18213ae3a31a77fe47efcd444f455cf6b3649e8
Author: Jeroen Bakker
Date: Fri Apr 20 13:40:18 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBf18213ae3a31a77fe47efcd444f455cf6b3649e8
Workbench: drawtype_* => drawtype_options, drawtype_lighting
In the new design the lighting is shared across the drawtypes.
the drawtype_options will be used for viewport draw engine settings
===================================================================
M source/blender/blenloader/intern/versioning_280.c
M source/blender/draw/engines/workbench/workbench_materials.c
M source/blender/draw/intern/draw_manager.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/space_view3d/view3d_header.c
M source/blender/makesdna/DNA_view3d_types.h
M source/blender/makesrna/intern/rna_space.c
===================================================================
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 0d781322d4f..493bf17a552 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -903,8 +903,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *main)
for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
if (sl->spacetype == SPACE_VIEW3D) {
View3D *v3d = (View3D *)sl;
- v3d->drawtype_solid = V3D_LIGHTING_STUDIO;
- v3d->drawtype_wireframe = V3D_LIGHTING_STUDIO;
+ v3d->drawtype_lighting = V3D_LIGHTING_STUDIO;
/* Assume (demo) files written with 2.8 want to show
* Eevee renders in the viewport. */
diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 43872e521ef..801ee3069b3 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -106,11 +106,11 @@ void workbench_materials_cache_init(WORKBENCH_Data *vedata)
switch (v3d->drawtype) {
default:
case OB_SOLID:
- wpd->drawtype_lighting = v3d->drawtype_solid;
+ wpd->drawtype_lighting = v3d->drawtype_lighting;
break;
}
#else
- wpd->drawtype_lighting = v3d->drawtype_solid;
+ wpd->drawtype_lighting = v3d->drawtype_lighting;
#endif
}
else {
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index b620d1875d8..dcc005d190a 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -895,19 +895,18 @@ static void drw_engines_enable_external(void)
/* TODO revisit this when proper layering is implemented */
/* Gather all draw engines needed and store them in DST.enabled_engines
* That also define the rendering order of engines */
-static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int drawtype,
- int UNUSED(drawtype_wireframe), int drawtype_solid, int UNUSED(drawtype_texture))
+static void drw_engines_enable_from_engine(RenderEngineType *engine_type, int drawtype, int drawtype_lighting)
{
switch (drawtype) {
case OB_WIRE:
break;
case OB_SOLID:
- if (drawtype_solid == V3D_LIGHTING_FLAT) {
+ if (drawtype_lighting == V3D_LIGHTING_FLAT) {
use_drw_engine(&draw_engine_workbench_solid_flat);
}
- else if (drawtype_solid == V3D_LIGHTING_STUDIO) {
+ else if (drawtype_lighting == V3D_LIGHTING_STUDIO) {
use_drw_engine(&draw_engine_workbench_solid_studio);
}
@@ -1004,11 +1003,9 @@ static void drw_engines_enable(ViewLayer *view_layer, RenderEngineType *engine_t
const int mode = CTX_data_mode_enum_ex(DST.draw_ctx.object_edit, obact, DST.draw_ctx.object_mode);
View3D * v3d = DST.draw_ctx.v3d;
const int drawtype = v3d->drawtype;
- const int drawtype_wireframe = v3d->drawtype_wireframe;
- const int drawtype_solid = v3d->drawtype_solid;
- const int drawtype_texture = v3d->drawtype_texture;
+ const int drawtype_lighting = v3d->drawtype_lighting;
- drw_engines_enable_from_engine(engine_type, drawtype, drawtype_wireframe, drawtype_solid, drawtype_texture);
+ drw_engines_enable_from_engine(engine_type, drawtype, drawtype_lighting);
if (DRW_state_draw_support()) {
drw_engines_enable_from_overlays(v3d->overlays);
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index 337d9c004ad..bb521a1a3d9 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -331,8 +331,7 @@ static SpaceLink *view3d_new(const bContext *C)
v3d->gridlines = 16;
v3d->gridsubdiv = 10;
v3d->drawtype = OB_SOLID;
- v3d->drawtype_solid = V3D_LIGHTING_STUDIO;
- v3d->drawtype_texture = V3D_LIGHTING_STUDIO;
+ v3d->drawtype_lighting = V3D_LIGHTING_STUDIO;
v3d->gridflag = V3D_SHOW_X | V3D_SHOW_Y | V3D_SHOW_FLOOR;
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index 563ff188f0d..0aa9a1700c3 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -306,7 +306,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
/* Draw type */
uiItemR(layout, &v3dptr, "viewport_shade", UI_ITEM_R_ICON_ONLY, "", ICON_NONE);
if (v3d->drawtype == OB_SOLID) {
- uiItemR(layout, &v3dptr, "viewport_shade_solid", 0, "", ICON_NONE);
+ uiItemR(layout, &v3dptr, "viewport_lighting", 0, "", ICON_NONE);
}
row = uiLayoutRow(layout, true);
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 09710664e34..46eb8081af2 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -245,15 +245,13 @@ typedef struct View3D {
* Runtime-only, set in the rendered viewport toggle operator.
*/
short prev_drawtype;
- /* drawtype subtype (visibility) used when drawtype == OB_WIRE */
- short drawtype_wireframe;
- /* drawtype subtype (lighting) used when drawtype == OB_SOLID */
- short drawtype_solid;
- /* drawtype subtype (lighting) used when drawtype == OB_TEXTURE */
- short drawtype_texture;
+ /* drawtype options (lighting, random) used for drawtype == OB_SOLID */
+ short drawtype_lighting;
+ short drawtype_options;
+ short pad5;
int overlays;
- int pad5;
+ int pad6;
View3DDebug debug;
} View3D;
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 82c19e63e20..6c96c5ff9da 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -2269,16 +2269,10 @@ static void rna_def_space_view3d(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Viewport Shading", "Method to display/shade objects in the 3D View");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update");
- prop = RNA_def_property(srna, "viewport_shade_solid", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_sdna(prop, NULL, "drawtype_solid");
+ prop = RNA_def_property(srna, "viewport_lighting", PROP_ENUM, PROP_NONE);
+ RNA_def_property_enum_sdna(prop, NULL, "drawtype_lighting");
RNA_def_property_enum_items(prop, rna_enum_viewport_lighting_items);
- RNA_def_property_ui_text(prop, "Viewport Lighting (Solid)", "Lighting Method for Solid Viewport Shading");
- RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update");
-
- prop = RNA_def_property(srna, "viewport_shade_texture", PROP_ENUM, PROP_NONE);
- RNA_def_property_enum_sdna(prop, NULL, "drawtype_texture");
- RNA_def_property_enum_items(prop, rna_enum_viewport_lighting_items);
- RNA_def_property_ui_text(prop, "Viewport Lighting (Texture)", "Lighting Method for Texture Viewport Shading");
+ RNA_def_property_ui_text(prop, "Viewport Lighting", "Lighting Method for Solid/Texture Viewport Shading");
RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, "rna_SpaceView3D_viewport_shade_update");
prop = RNA_def_property(srna, "show_face_orientation_overlay", PROP_BOOLEAN, PROP_NONE);
More information about the Bf-blender-cvs
mailing list