[Bf-blender-cvs] [c060a835bbc] master: Fix unreported: Selection of mesh_cage element occluded by the mesh_cage itself.

mano-wii noreply at git.blender.org
Fri Aug 2 04:22:05 CEST 2019


Commit: c060a835bbcdc994e77460ae69d2fd2ecfc249ab
Author: mano-wii
Date:   Thu Aug 1 23:18:44 2019 -0300
Branches: master
https://developer.blender.org/rBc060a835bbcdc994e77460ae69d2fd2ecfc249ab

Fix unreported: Selection of mesh_cage element occluded by the mesh_cage itself.

The right thing is to be occluded by the visible mesh (in the case with modifiers).

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

M	source/blender/draw/engines/select/select_draw_utils.c

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

diff --git a/source/blender/draw/engines/select/select_draw_utils.c b/source/blender/draw/engines/select/select_draw_utils.c
index 745c55405de..026fd52aa58 100644
--- a/source/blender/draw/engines/select/select_draw_utils.c
+++ b/source/blender/draw/engines/select/select_draw_utils.c
@@ -90,9 +90,10 @@ static void draw_select_id_edit_mesh(SELECTID_StorageList *stl,
 
   BM_mesh_elem_table_ensure(em->bm, BM_VERT | BM_EDGE | BM_FACE);
 
-  struct GPUBatch *geom_faces = DRW_mesh_batch_cache_get_triangles_with_select_id(me);
+  struct GPUBatch *geom_faces;
   DRWShadingGroup *face_shgrp;
   if (select_mode & SCE_SELECT_FACE) {
+    geom_faces = DRW_mesh_batch_cache_get_triangles_with_select_id(me);
     face_shgrp = DRW_shgroup_create_sub(stl->g_data->shgrp_face_flat);
     DRW_shgroup_uniform_int_copy(face_shgrp, "offset", *(int *)&initial_offset);
 
@@ -103,6 +104,7 @@ static void draw_select_id_edit_mesh(SELECTID_StorageList *stl,
     *r_face_offset = initial_offset + em->bm->totface;
   }
   else {
+    geom_faces = DRW_mesh_batch_cache_get_surface(me);
     face_shgrp = stl->g_data->shgrp_face_unif;
     DRW_shgroup_uniform_int_copy(face_shgrp, "id", 0);
     *r_face_offset = initial_offset;



More information about the Bf-blender-cvs mailing list