From ecc395e473d717e6f9f791a3daf12007a52eecbb Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 26 May 2020 08:48:57 +0200 Subject: 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. --- source/blender/draw/engines/overlay/overlay_engine.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/blender/draw/engines/overlay') diff --git a/source/blender/draw/engines/overlay/overlay_engine.c b/source/blender/draw/engines/overlay/overlay_engine.c index e875f2c8291..586b99c14da 100644 --- a/source/blender/draw/engines/overlay/overlay_engine.c +++ b/source/blender/draw/engines/overlay/overlay_engine.c @@ -46,6 +46,8 @@ static void OVERLAY_engine_init(void *vedata) const DRWContextState *draw_ctx = DRW_context_state_get(); const RegionView3D *rv3d = draw_ctx->rv3d; const View3D *v3d = draw_ctx->v3d; + const Scene *scene = draw_ctx->scene; + const ToolSettings *ts = scene->toolsettings; if (!stl->pd) { /* Alloc transient pointers */ @@ -76,6 +78,12 @@ static void OVERLAY_engine_init(void *vedata) if (v3d->shading.type == OB_WIRE) { 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) || BKE_scene_uses_blender_workbench(draw_ctx->scene); -- cgit v1.2.3