From 8f662e84e0b49a581f9330bf1c560e62485b3f6a Mon Sep 17 00:00:00 2001 From: mano-wii Date: Tue, 17 Sep 2019 08:26:38 -0300 Subject: Fix T69716: Can't select geometry hidden by faces created by modifiers This kind of reverts rBc060a835 that was committed without discussion. --- source/blender/draw/engines/select/select_draw_utils.c | 4 ++++ source/blender/draw/engines/select/select_engine.c | 4 ++++ source/blender/draw/engines/select/select_private.h | 2 ++ 3 files changed, 10 insertions(+) (limited to 'source/blender/draw/engines/select') diff --git a/source/blender/draw/engines/select/select_draw_utils.c b/source/blender/draw/engines/select/select_draw_utils.c index 927956dad19..cac8b5cb304 100644 --- a/source/blender/draw/engines/select/select_draw_utils.c +++ b/source/blender/draw/engines/select/select_draw_utils.c @@ -129,7 +129,11 @@ static void draw_select_id_edit_mesh(SELECTID_StorageList *stl, } else { if (ob->dt >= OB_SOLID) { +#ifdef USE_CAGE_OCCLUSION + struct GPUBatch *geom_faces = DRW_mesh_batch_cache_get_triangles_with_select_id(me); +#else struct GPUBatch *geom_faces = DRW_mesh_batch_cache_get_surface(me); +#endif DRWShadingGroup *face_shgrp = stl->g_data->shgrp_face_unif; DRW_shgroup_call_no_cull(face_shgrp, geom_faces, ob); } diff --git a/source/blender/draw/engines/select/select_engine.c b/source/blender/draw/engines/select/select_engine.c index 5dc20a589f0..abfa57dd218 100644 --- a/source/blender/draw/engines/select/select_engine.c +++ b/source/blender/draw/engines/select/select_engine.c @@ -252,7 +252,11 @@ static void select_cache_populate(void *vedata, Object *ob) DRW_shgroup_call_obmat(stl->g_data->shgrp_depth_only, geom_faces, ob->obmat); } else if (ob->dt >= OB_SOLID) { +#ifdef USE_CAGE_OCCLUSION + struct GPUBatch *geom_faces = DRW_mesh_batch_cache_get_triangles_with_select_id(me); +#else struct GPUBatch *geom_faces = DRW_mesh_batch_cache_get_surface(me); +#endif DRW_shgroup_call_obmat(stl->g_data->shgrp_depth_only, geom_faces, ob->obmat); } diff --git a/source/blender/draw/engines/select/select_private.h b/source/blender/draw/engines/select/select_private.h index 642cd6ffc56..1e99a49252e 100644 --- a/source/blender/draw/engines/select/select_private.h +++ b/source/blender/draw/engines/select/select_private.h @@ -23,6 +23,8 @@ #ifndef __SELECT_PRIVATE_H__ #define __SELECT_PRIVATE_H__ +#define USE_CAGE_OCCLUSION + #include "DRW_render.h" /* GPUViewport.storage -- cgit v1.2.3