diff options
author | Hans Goudey <h.goudey@me.com> | 2022-05-20 10:50:54 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2022-05-20 10:50:54 +0300 |
commit | 1d65f7ea9148d451d65ea075d088a8de796314a5 (patch) | |
tree | 73a25953b87a64b06faa6f06e90dec0d7944cd3f /source/blender/blenkernel/intern | |
parent | 8e02b0d5d4f9882c87f1e95fc5b185c384b57fb0 (diff) | |
parent | b8bd20d7e0238df9a7f558892377f6b304d5ca75 (diff) |
Merge branch 'blender-v3.2-release'
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/pbvh.c | 20 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/pbvh_intern.h | 2 |
2 files changed, 11 insertions, 11 deletions
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c index e1ab4ccfb0a..1d4fbb92fa0 100644 --- a/source/blender/blenkernel/intern/pbvh.c +++ b/source/blender/blenkernel/intern/pbvh.c @@ -244,8 +244,8 @@ static int map_insert_vert( key = POINTER_FROM_INT(vertex); if (!BLI_ghash_ensure_p(map, key, &value_p)) { int value_i; - if (BLI_BITMAP_TEST(pbvh->vert_bitmap, vertex) == 0) { - BLI_BITMAP_ENABLE(pbvh->vert_bitmap, vertex); + if (!pbvh->vert_bitmap[vertex]) { + pbvh->vert_bitmap[vertex] = true; value_i = *uniq_verts; (*uniq_verts)++; } @@ -562,7 +562,7 @@ void BKE_pbvh_build_mesh(PBVH *pbvh, pbvh->verts = verts; BKE_mesh_vertex_normals_ensure(mesh); pbvh->vert_normals = BKE_mesh_vertex_normals_for_write(mesh); - pbvh->vert_bitmap = BLI_BITMAP_NEW(totvert, "bvh->vert_bitmap"); + pbvh->vert_bitmap = MEM_calloc_arrayN(totvert, sizeof(bool), "bvh->vert_bitmap"); pbvh->totvert = totvert; pbvh->leaf_limit = LEAF_LIMIT; pbvh->vdata = vdata; @@ -600,7 +600,7 @@ void BKE_pbvh_build_mesh(PBVH *pbvh, MEM_freeN(prim_bbc); /* Clear the bitmap so it can be used as an update tag later on. */ - BLI_bitmap_set_all(pbvh->vert_bitmap, false, totvert); + memset(pbvh->vert_bitmap, 0, sizeof(bool) * totvert); BKE_pbvh_update_active_vcol(pbvh, mesh); } @@ -1021,7 +1021,7 @@ static void pbvh_update_normals_clear_task_cb(void *__restrict userdata, const int totvert = node->uniq_verts; for (int i = 0; i < totvert; i++) { const int v = verts[i]; - if (BLI_BITMAP_TEST(pbvh->vert_bitmap, v)) { + if (pbvh->vert_bitmap[v]) { zero_v3(vnors[v]); } } @@ -1064,7 +1064,7 @@ static void pbvh_update_normals_accum_task_cb(void *__restrict userdata, for (int j = sides; j--;) { const int v = vtri[j]; - if (BLI_BITMAP_TEST(pbvh->vert_bitmap, v)) { + if (pbvh->vert_bitmap[v]) { /* NOTE: This avoids `lock, add_v3_v3, unlock` * and is five to ten times quicker than a spin-lock. * Not exact equivalent though, since atomicity is only ensured for one component @@ -1096,9 +1096,9 @@ static void pbvh_update_normals_store_task_cb(void *__restrict userdata, /* No atomics necessary because we are iterating over uniq_verts only, * so we know only this thread will handle this vertex. */ - if (BLI_BITMAP_TEST(pbvh->vert_bitmap, v)) { + if (pbvh->vert_bitmap[v]) { normalize_v3(vnors[v]); - BLI_BITMAP_DISABLE(pbvh->vert_bitmap, v); + pbvh->vert_bitmap[v] = false; } } @@ -1879,7 +1879,7 @@ bool BKE_pbvh_node_fully_unmasked_get(PBVHNode *node) void BKE_pbvh_vert_mark_update(PBVH *pbvh, int index) { BLI_assert(pbvh->type == PBVH_FACES); - BLI_BITMAP_ENABLE(pbvh->vert_bitmap, index); + pbvh->vert_bitmap[index] = true; } void BKE_pbvh_node_get_loops(PBVH *pbvh, @@ -2044,7 +2044,7 @@ bool BKE_pbvh_node_vert_update_check_any(PBVH *pbvh, PBVHNode *node) for (int i = 0; i < totvert; i++) { const int v = verts[i]; - if (BLI_BITMAP_TEST(pbvh->vert_bitmap, v)) { + if (pbvh->vert_bitmap[v]) { return true; } } diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h index 9506a077dc6..a86663a9c74 100644 --- a/source/blender/blenkernel/intern/pbvh_intern.h +++ b/source/blender/blenkernel/intern/pbvh_intern.h @@ -170,7 +170,7 @@ struct PBVH { /* Used during BVH build and later to mark that a vertex needs to update * (its normal must be recalculated). */ - BLI_bitmap *vert_bitmap; + bool *vert_bitmap; #ifdef PERFCNTRS int perf_modified; |