Fix T98913: GPU Subdivision: "Show Wire" overlay glitch

Issue is caused by an off by one error which would map some edge loops to
the loops of some the next polygon in the list of polygon, which may not
be a topological neighbor.
This commit is contained in:
Kévin Dietrich 2022-06-20 12:13:55 +02:00
parent 088157e447
commit b73a52302e
Notes: blender-bot 2023-02-13 15:16:29 +01:00
Referenced by issue #98913, GPU Subdivision: "Show Wire" overlay glitch in vertex paint and weight paint
Referenced by issue #98661, 3.2: Potential candidates for corrective releases
1 changed files with 2 additions and 1 deletions

View File

@ -126,7 +126,8 @@ static void extract_lines_paint_mask_iter_subdiv_mesh(const DRWSubdivCache *subd
if (!((mr->use_hide && (me->flag & ME_HIDE)) ||
((mr->extract_type == MR_EXTRACT_MAPPED) && (mr->e_origindex) &&
(mr->e_origindex[coarse_edge_index] == ORIGINDEX_NONE)))) {
const uint ml_index_other = (loop_idx == end_loop_idx) ? start_loop_idx : loop_idx + 1;
const uint ml_index_other = (loop_idx == (end_loop_idx - 1)) ? start_loop_idx :
loop_idx + 1;
if (coarse_quad->flag & ME_FACE_SEL) {
if (BLI_BITMAP_TEST_AND_SET_ATOMIC(data->select_map, coarse_edge_index)) {
/* Hide edge as it has more than 2 selected loop. */