[Bf-blender-cvs] [30fbf905ef8] master: Fix T62774: Respect Show Overlays

Jeroen Bakker noreply at git.blender.org
Tue Mar 26 08:00:18 CET 2019


Commit: 30fbf905ef8bd587eef43030b81d75b9eb704bec
Author: Jeroen Bakker
Date:   Tue Mar 26 07:58:14 2019 +0100
Branches: master
https://developer.blender.org/rB30fbf905ef8bd587eef43030b81d75b9eb704bec

Fix T62774: Respect Show Overlays

Some draw code did not respect Show Overlays option. These were:

 * All mode based drawing engines (edit mode)
 * Wireframe drawing

This change make them respect the Show Overlays Option.

Reviewed By: fclem, billreynish

Maniphest Tasks: T62774

Differential Revision: https://developer.blender.org/D4572

===================================================================

M	source/blender/draw/intern/draw_manager.c
M	source/blender/draw/modes/overlay_mode.c

===================================================================

diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index b826a03e715..4ecfb903a78 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1331,8 +1331,6 @@ static void drw_engines_enable(ViewLayer *view_layer, RenderEngineType *engine_t
 		if (v3d->shading.type == OB_WIRE) {
 			drw_engines_enable_from_overlays(v3d->overlay.flag);
 		}
-
-		drw_engines_enable_from_mode(mode);
 	}
 }
 
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index 6dacf27ee98..52e8f73f971 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -177,7 +177,6 @@ static void overlay_cache_init(void *vedata)
 
 	if (v3d->shading.type == OB_WIRE) {
 		g_data->overlay.flag |= V3D_OVERLAY_WIREFRAMES;
-		g_data->show_overlays = true;
 
 		if (ELEM(v3d->shading.wire_color_type,
 		         V3D_SHADING_OBJECT_COLOR,
@@ -328,8 +327,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
 	const DRWContextState *draw_ctx = DRW_context_state_get();
 	View3D *v3d = draw_ctx->v3d;
 
-	if ((!pd->show_overlays) ||
-	    (ob->dt < OB_WIRE) ||
+	if ((ob->dt < OB_WIRE) ||
 	    (!DRW_object_is_renderable(ob) && (ob->dt != OB_WIRE)))
 	{
 		return;
@@ -359,14 +357,14 @@ static void overlay_cache_populate(void *vedata, Object *ob)
 		}
 
 		/* Don't do that in edit Mesh mode, unless there is a modifier preview. */
-		if ((((ob != draw_ctx->object_edit) && !is_edit_mode) || has_edit_mesh_cage) ||
+		if ((!pd->show_overlays) || (((ob != draw_ctx->object_edit) && !is_edit_mode) || has_edit_mesh_cage) ||
 		    ob->type != OB_MESH)
 		{
 			const bool is_active = (ob == draw_ctx->obact);
 			const bool is_sculpt_mode = is_active && (draw_ctx->object_mode & OB_MODE_SCULPT) != 0;
 			const bool all_wires = (ob->dtx & OB_DRAW_ALL_EDGES);
 			const bool is_wire = (ob->dt < OB_SOLID);
-			const bool use_coloring = (!is_edit_mode && !is_sculpt_mode && !has_edit_mesh_cage);
+			const bool use_coloring = (pd->show_overlays && !is_edit_mode && !is_sculpt_mode && !has_edit_mesh_cage);
 			const int stencil_mask = (ob->dtx & OB_DRAWXRAY) ? 0x00 : 0xFF;
 			float *rim_col, *wire_col;
 			DRWShadingGroup *shgrp = NULL;



More information about the Bf-blender-cvs mailing list