Fix T76902: face sets checkbox broken
Due to recent changes the face sets checkbox broke. The cause is that
{7d38f5036794} changed the responsibility of drawing and updating sculpt GPU
buffers to fix render glitches.
This patch moves the checkboxes evaluation to the overlay engine.
This commit is contained in:
@@ -46,6 +46,8 @@ static void OVERLAY_engine_init(void *vedata)
|
|||||||
const DRWContextState *draw_ctx = DRW_context_state_get();
|
const DRWContextState *draw_ctx = DRW_context_state_get();
|
||||||
const RegionView3D *rv3d = draw_ctx->rv3d;
|
const RegionView3D *rv3d = draw_ctx->rv3d;
|
||||||
const View3D *v3d = draw_ctx->v3d;
|
const View3D *v3d = draw_ctx->v3d;
|
||||||
|
const Scene *scene = draw_ctx->scene;
|
||||||
|
const ToolSettings *ts = scene->toolsettings;
|
||||||
|
|
||||||
if (!stl->pd) {
|
if (!stl->pd) {
|
||||||
/* Alloc transient pointers */
|
/* Alloc transient pointers */
|
||||||
@@ -76,6 +78,12 @@ static void OVERLAY_engine_init(void *vedata)
|
|||||||
if (v3d->shading.type == OB_WIRE) {
|
if (v3d->shading.type == OB_WIRE) {
|
||||||
pd->overlay.flag |= V3D_OVERLAY_WIREFRAMES;
|
pd->overlay.flag |= V3D_OVERLAY_WIREFRAMES;
|
||||||
}
|
}
|
||||||
|
if (ts->sculpt->flags & SCULPT_HIDE_FACE_SETS) {
|
||||||
|
pd->overlay.sculpt_mode_face_sets_opacity = 0.0f;
|
||||||
|
}
|
||||||
|
if (ts->sculpt->flags & SCULPT_HIDE_MASK) {
|
||||||
|
pd->overlay.sculpt_mode_mask_opacity = 0.0f;
|
||||||
|
}
|
||||||
|
|
||||||
pd->use_in_front = (v3d->shading.type <= OB_SOLID) ||
|
pd->use_in_front = (v3d->shading.type <= OB_SOLID) ||
|
||||||
BKE_scene_uses_blender_workbench(draw_ctx->scene);
|
BKE_scene_uses_blender_workbench(draw_ctx->scene);
|
||||||
|
|||||||
Reference in New Issue
Block a user