Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/overlay/overlay_facing.c
| Show All 39 Lines | void OVERLAY_facing_cache_init(OVERLAY_Data *vedata) | ||||
| pd->facing_grp = DRW_shgroup_create(sh, psl->facing_ps); | pd->facing_grp = DRW_shgroup_create(sh, psl->facing_ps); | ||||
| DRW_shgroup_uniform_block_persistent(pd->facing_grp, "globalsBlock", G_draw.block_ubo); | DRW_shgroup_uniform_block_persistent(pd->facing_grp, "globalsBlock", G_draw.block_ubo); | ||||
| } | } | ||||
| void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob) | void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob) | ||||
| { | { | ||||
| OVERLAY_PrivateData *pd = vedata->stl->pd; | OVERLAY_PrivateData *pd = vedata->stl->pd; | ||||
| if (ob->sculpt) { | |||||
jbakker: we normally do
```
const DRWContextState *draw_ctx = DRW_context_state_get();
const bool… | |||||
| DRW_shgroup_call_sculpt(pd->facing_grp, ob, false, false, false); | |||||
| } | |||||
| else { | |||||
| struct GPUBatch *geom = DRW_cache_object_surface_get(ob); | struct GPUBatch *geom = DRW_cache_object_surface_get(ob); | ||||
| if (geom) { | if (geom) { | ||||
| DRW_shgroup_call(pd->facing_grp, geom, ob); | DRW_shgroup_call(pd->facing_grp, geom, ob); | ||||
| } | } | ||||
| } | } | ||||
| } | |||||
| void OVERLAY_facing_draw(OVERLAY_Data *vedata) | void OVERLAY_facing_draw(OVERLAY_Data *vedata) | ||||
| { | { | ||||
| OVERLAY_PassList *psl = vedata->psl; | OVERLAY_PassList *psl = vedata->psl; | ||||
| DRW_draw_pass(psl->facing_ps); | DRW_draw_pass(psl->facing_ps); | ||||
| } | } | ||||
we normally do
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) {This also checks for modifiers and shading