[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