[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