[Bf-blender-cvs] [5df56668d34] master: Edit Mode: Fix Xray edit mode broken due to recent refactor

Clément Foucault noreply at git.blender.org
Tue Feb 5 15:38:24 CET 2019


Commit: 5df56668d3480d6684f8af427ed5905010649641
Author: Clément Foucault
Date:   Tue Feb 5 14:47:05 2019 +0100
Branches: master
https://developer.blender.org/rB5df56668d3480d6684f8af427ed5905010649641

Edit Mode: Fix Xray edit mode broken due to recent refactor

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

M	source/blender/draw/modes/edit_mesh_mode.c

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

diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index bd4a1e85ca8..b8e05a8eb2c 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -328,6 +328,20 @@ static DRWPass *edit_mesh_create_overlay_pass(
 	grp = *r_face_cage_shgrp = DRW_shgroup_create_sub(*r_face_shgrp);
 	DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE);
 
+	/* Verts */
+	if (select_vert) {
+		grp = *r_vert_shgrp = DRW_shgroup_create(vert_sh, pass);
+		DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
+		DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1);
+		DRW_shgroup_uniform_float(grp, "edgeScale", edge_width_scale, 1);
+		DRW_shgroup_uniform_float_copy(grp, "ofs", depth_ofs);
+		DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE | DRW_STATE_WRITE_DEPTH);
+		DRW_shgroup_state_disable(grp, DRW_STATE_BLEND);
+		if (rv3d->rflag & RV3D_CLIPPING) {
+			DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d);
+		}
+	}
+
 	/* Edges */
 	grp = *r_edge_deco_shgrp = DRW_shgroup_create(edge_deco_sh, pass);
 	DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
@@ -361,19 +375,6 @@ static DRWPass *edit_mesh_create_overlay_pass(
 		DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d);
 	}
 
-	/* Verts */
-	if (select_vert) {
-		grp = *r_vert_shgrp = DRW_shgroup_create(vert_sh, pass);
-		DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
-		DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1);
-		DRW_shgroup_uniform_float(grp, "edgeScale", edge_width_scale, 1);
-		DRW_shgroup_uniform_float_copy(grp, "ofs", depth_ofs);
-		DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE | DRW_STATE_WRITE_DEPTH);
-		DRW_shgroup_state_disable(grp, DRW_STATE_BLEND);
-		if (rv3d->rflag & RV3D_CLIPPING) {
-			DRW_shgroup_world_clip_planes_from_rv3d(grp, rv3d);
-		}
-	}
 	return pass;
 }
 
@@ -588,15 +589,13 @@ static void edit_mesh_add_ob_to_pass(
 	DRWShadingGroup *edge_shgrp = g_data->edge_shgrp;
 	DRWShadingGroup *edge_deco_shgrp = g_data->edge_deco_shgrp;
 
+	face_shgrp = (facefill_shgrp != NULL) ? facefill_shgrp : face_shgrp;
+
 	geom_tris = DRW_mesh_batch_cache_get_edit_triangles(ob->data);
 	geom_edges = DRW_mesh_batch_cache_get_edit_edges(ob->data);
-	DRW_shgroup_call_add(face_shgrp, geom_tris, ob->obmat);
 	DRW_shgroup_call_add(edge_shgrp, geom_edges, ob->obmat);
 	DRW_shgroup_call_add(edge_deco_shgrp, geom_edges, ob->obmat);
-
-	if (facefill_shgrp) {
-		DRW_shgroup_call_add(facefill_shgrp, geom_tris, ob->obmat);
-	}
+	DRW_shgroup_call_add(face_shgrp, geom_tris, ob->obmat);
 
 	if ((tsettings->selectmode & SCE_SELECT_VERTEX) != 0) {
 		geom_verts = DRW_mesh_batch_cache_get_edit_vertices(ob->data);



More information about the Bf-blender-cvs mailing list