[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