From c207571d44e6af7d52a3764f6a3794e9a884a56b Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Fri, 14 Oct 2022 22:51:45 -0700 Subject: Sculpt: Fix draw artifacts when drawing multires mask --- source/blender/draw/intern/draw_pbvh.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index 880a5a445f4..381f8b55e9f 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -389,12 +389,18 @@ struct PBVHBatches { break; case CD_PBVH_MASK_TYPE: - foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) { - float *mask = CCG_elem_mask(&args->ccg_key, elems[i]); + if (args->ccg_key.has_mask) { + foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) { + float *mask = CCG_elem_mask(&args->ccg_key, elems[i]); - *static_cast(GPU_vertbuf_raw_step(&access)) = mask ? uchar(*mask * 255.0f) : - 255; - }); + *static_cast(GPU_vertbuf_raw_step(&access)) = uchar(*mask * 255.0f); + }); + } + else { + foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) { + *static_cast(GPU_vertbuf_raw_step(&access)) = 0; + }); + } break; case CD_PBVH_FSET_TYPE: { -- cgit v1.2.3 From ebe9804cfa421b746148f3067797f16e7f460551 Mon Sep 17 00:00:00 2001 From: Joseph Eagar Date: Fri, 14 Oct 2022 23:03:10 -0700 Subject: Cleanup: comment out unused lambda parameter --- source/blender/draw/intern/draw_pbvh.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index 381f8b55e9f..60a0d4e6bb2 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -397,9 +397,10 @@ struct PBVHBatches { }); } else { - foreach_grids([&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem *elems[4], int i) { - *static_cast(GPU_vertbuf_raw_step(&access)) = 0; - }); + foreach_grids( + [&](int /*x*/, int /*y*/, int /*grid_index*/, CCGElem * /*elems*/[4], int i) { + *static_cast(GPU_vertbuf_raw_step(&access)) = 0; + }); } break; -- cgit v1.2.3