diff options
Diffstat (limited to 'source/blender/draw/engines/select')
-rw-r--r-- | source/blender/draw/engines/select/select_draw_utils.c | 4 | ||||
-rw-r--r-- | source/blender/draw/engines/select/select_engine.c | 4 | ||||
-rw-r--r-- | source/blender/draw/engines/select/select_private.h | 2 |
3 files changed, 10 insertions, 0 deletions
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 |