diff options
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_facing.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_facing.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_facing.c b/source/blender/draw/engines/overlay/overlay_facing.c index fd974e9b8b8..872fa0e8796 100644 --- a/source/blender/draw/engines/overlay/overlay_facing.c +++ b/source/blender/draw/engines/overlay/overlay_facing.c @@ -20,6 +20,7 @@ * \ingroup draw_engine */ +#include "BKE_paint.h" #include "DRW_render.h" #include "overlay_private.h" @@ -45,9 +46,17 @@ void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob) { OVERLAY_PrivateData *pd = vedata->stl->pd; - struct GPUBatch *geom = DRW_cache_object_surface_get(ob); - if (geom) { - DRW_shgroup_call(pd->facing_grp, geom, ob); + const DRWContextState *draw_ctx = DRW_context_state_get(); + const bool use_sculpt_pbvh = BKE_sculptsession_use_pbvh_draw(ob, draw_ctx->v3d) && + !DRW_state_is_image_render(); + if (use_sculpt_pbvh) { + DRW_shgroup_call_sculpt(pd->facing_grp, ob, false, false, false); + } + else { + struct GPUBatch *geom = DRW_cache_object_surface_get(ob); + if (geom) { + DRW_shgroup_call(pd->facing_grp, geom, ob); + } } } |