diff options
author | Joseph Eagar <joeedh@gmail.com> | 2022-10-15 09:14:21 +0300 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2022-10-15 09:14:21 +0300 |
commit | ae412d54e36185aef7103110a3e79c83877ee74f (patch) | |
tree | fd52c86469b779f9bf61f92754b060dadf342f86 /source/blender/draw | |
parent | d582920e18a9c95df90119b806bec3873cf8bce5 (diff) | |
parent | ebe9804cfa421b746148f3067797f16e7f460551 (diff) |
Merge branch 'master' into temp-pbvh-texpaint-automaskingtemp-pbvh-texpaint-automasking
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/intern/draw_pbvh.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/draw/intern/draw_pbvh.cc b/source/blender/draw/intern/draw_pbvh.cc index 880a5a445f4..60a0d4e6bb2 100644 --- a/source/blender/draw/intern/draw_pbvh.cc +++ b/source/blender/draw/intern/draw_pbvh.cc @@ -389,12 +389,19 @@ 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<uchar *>(GPU_vertbuf_raw_step(&access)) = mask ? uchar(*mask * 255.0f) : - 255; - }); + *static_cast<uchar *>(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<uchar *>(GPU_vertbuf_raw_step(&access)) = 0; + }); + } break; case CD_PBVH_FSET_TYPE: { |