[Bf-blender-cvs] [d58c2568bb8] lanpr-under-gp: LineArt: Reduced vert intersecting data size.

YimingWu noreply at git.blender.org
Thu Oct 22 11:23:55 CEST 2020


Commit: d58c2568bb8b02f8937d2c899ca0ba3b88dac561
Author: YimingWu
Date:   Thu Oct 22 17:19:51 2020 +0800
Branches: lanpr-under-gp
https://developer.blender.org/rBd58c2568bb8b02f8937d2c899ca0ba3b88dac561

LineArt: Reduced vert intersecting data size.

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

M	source/blender/editors/include/ED_lineart.h
M	source/blender/editors/lineart/lineart_cpu.c

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

diff --git a/source/blender/editors/include/ED_lineart.h b/source/blender/editors/include/ED_lineart.h
index 9a88fa0bdce..e4dc22af926 100644
--- a/source/blender/editors/include/ED_lineart.h
+++ b/source/blender/editors/include/ED_lineart.h
@@ -122,7 +122,8 @@ typedef struct LineartRenderVert {
 
 typedef struct LineartRenderVertIntersection {
   struct LineartRenderVert base;
-  struct LineartRenderVert *isec1, *isec2;
+  /* Use vert index because we only use this to check vertex equal. This way we save 8 Bytes. */
+  int isec1, isec2;
   struct LineartRenderTriangle *intersecting_with;
 } LineartRenderVertIntersection;
 
diff --git a/source/blender/editors/lineart/lineart_cpu.c b/source/blender/editors/lineart/lineart_cpu.c
index 0ec3212fd39..0cb7fa7c444 100644
--- a/source/blender/editors/lineart/lineart_cpu.c
+++ b/source/blender/editors/lineart/lineart_cpu.c
@@ -2210,8 +2210,8 @@ static bool lineart_vert_already_intersected_2v(LineartRenderVertIntersection *r
                                                 LineartRenderVertIntersection *v1,
                                                 LineartRenderVertIntersection *v2)
 {
-  return ((rv->isec1 == (void *)v1 && rv->isec2 == (void *)v2) ||
-          (rv->isec2 == (void *)v2 && rv->isec1 == (void *)v1));
+  return ((rv->isec1 == v1->base.index && rv->isec2 == v2->base.index) ||
+          (rv->isec2 == v2->base.index && rv->isec1 == v1->base.index));
 }
 
 static void lineart_vert_set_intersection_2v(LineartRenderVert *rv,
@@ -2219,8 +2219,8 @@ static void lineart_vert_set_intersection_2v(LineartRenderVert *rv,
                                              LineartRenderVert *v2)
 {
   LineartRenderVertIntersection *irv = (LineartRenderVertIntersection *)rv;
-  irv->isec1 = v1;
-  irv->isec2 = v2;
+  irv->isec1 = v1->index;
+  irv->isec2 = v2->index;
 }
 
 static LineartRenderVert *lineart_triangle_2v_intersection_test(LineartRenderBuffer *rb,



More information about the Bf-blender-cvs mailing list