[Bf-blender-cvs] [69d70c7bbf0] temp-T97352-3d-texturing-seam-bleeding-b2: Use BLI_edgehash_ensure_p to reduce lookups.
Jeroen Bakker
noreply at git.blender.org
Tue Sep 20 15:23:01 CEST 2022
Commit: 69d70c7bbf0599afa5eabdc81d2eaf683ca5be23
Author: Jeroen Bakker
Date: Tue Sep 20 11:33:06 2022 +0200
Branches: temp-T97352-3d-texturing-seam-bleeding-b2
https://developer.blender.org/rB69d70c7bbf0599afa5eabdc81d2eaf683ca5be23
Use BLI_edgehash_ensure_p to reduce lookups.
===================================================================
M source/blender/blenkernel/BKE_uv_islands.hh
===================================================================
diff --git a/source/blender/blenkernel/BKE_uv_islands.hh b/source/blender/blenkernel/BKE_uv_islands.hh
index 3c8092c1538..75357b4f706 100644
--- a/source/blender/blenkernel/BKE_uv_islands.hh
+++ b/source/blender/blenkernel/BKE_uv_islands.hh
@@ -164,12 +164,16 @@ struct MeshData {
for (int j = 0; j < 3; j++) {
int v1 = mloop[tri.tri[j]].v;
int v2 = mloop[tri.tri[(j + 1) % 3]].v;
- /* TODO: Use lookup_ptr to be able to store edge 0. */
- void *v = BLI_edgehash_lookup(eh, v1, v2);
+
+ void **edge_index_ptr;
int64_t edge_index;
- if (v == nullptr) {
+ if (BLI_edgehash_ensure_p(eh, v1, v2, &edge_index_ptr)) {
+ edge_index = POINTER_AS_INT(*edge_index_ptr) - 1;
+ *edge_index_ptr = POINTER_FROM_INT(edge_index);
+ }
+ else {
edge_index = edges.size();
- BLI_edgehash_insert(eh, v1, v2, POINTER_FROM_INT(edge_index + 1));
+ *edge_index_ptr = POINTER_FROM_INT(edge_index + 1);
MeshEdge edge;
edge.vert1 = &vertices[v1];
edge.vert2 = &vertices[v2];
@@ -178,9 +182,6 @@ struct MeshData {
vertices[v1].edges.append(edge_ptr);
vertices[v2].edges.append(edge_ptr);
}
- else {
- edge_index = POINTER_AS_INT(v) - 1;
- }
MeshEdge *edge = &edges[edge_index];
edge->primitives.append(&primitive);
More information about the Bf-blender-cvs
mailing list