[Bf-blender-cvs] [52585b39a13] master: LineArt: Remove duplicated edge-boundbox linking.

YimingWu noreply at git.blender.org
Mon Dec 27 07:23:09 CET 2021


Commit: 52585b39a13ec9c1bff4857f241baa255ce2b449
Author: YimingWu
Date:   Mon Dec 27 14:21:12 2021 +0800
Branches: master
https://developer.blender.org/rB52585b39a13ec9c1bff4857f241baa255ce2b449

LineArt: Remove duplicated edge-boundbox linking.

The edge is linked twice from differen calls during line art calculation
Probably caused by a merge and both calls stayed for some reason.
This would lead to edge link overflowing its limit of 2^16 items.

===================================================================

M	source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c

===================================================================

diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
index d9a32711833..f0ab7f3ee31 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.c
@@ -2930,15 +2930,7 @@ static LineartEdge *lineart_triangle_intersect(LineartRenderBuffer *rb,
   result->intersection_mask = (tri->intersection_mask | testing->intersection_mask);
 
   lineart_prepend_edge_direct(&rb->intersection.first, result);
-  int r1, r2, c1, c2, row, col;
-  if (lineart_get_edge_bounding_areas(rb, result, &r1, &r2, &c1, &c2)) {
-    for (row = r1; row != r2 + 1; row++) {
-      for (col = c1; col != c2 + 1; col++) {
-        lineart_bounding_area_link_edge(
-            rb, &rb->initial_bounding_areas[row * LRT_BA_ROWS + col], result);
-      }
-    }
-  }
+
   return result;
 }
 
@@ -3409,7 +3401,6 @@ static void lineart_bounding_area_split(LineartRenderBuffer *rb,
   LineartBoundingArea *ba = lineart_mem_acquire(&rb->render_data_pool,
                                                 sizeof(LineartBoundingArea) * 4);
   LineartTriangle *tri;
-  LineartEdge *e;
 
   ba[0].l = root->cx;
   ba[0].r = root->r;
@@ -3475,11 +3466,6 @@ static void lineart_bounding_area_split(LineartRenderBuffer *rb,
     }
   }
 
-  for (int i = 0; i < root->line_count; i++) {
-    e = root->linked_lines[i];
-    lineart_bounding_area_link_edge(rb, root, e);
-  }
-
   rb->bounding_area_count += 3;
 }



More information about the Bf-blender-cvs mailing list