[Bf-blender-cvs] [3c185098c6d] soc-2019-npr: LANPR: ensure chain only contains one type of segments.
YimingWu
noreply at git.blender.org
Thu Jun 27 08:44:18 CEST 2019
Commit: 3c185098c6dc9bc052103deddbbfeb81a7f9fae3
Author: YimingWu
Date: Thu Jun 27 14:35:02 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB3c185098c6dc9bc052103deddbbfeb81a7f9fae3
LANPR: ensure chain only contains one type of segments.
===================================================================
M source/blender/draw/engines/lanpr/lanpr_chain.c
M source/blender/draw/engines/lanpr/lanpr_data_types.h
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 7e7568c18c2..0cde4ce5f04 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -230,6 +230,7 @@ void lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb)
rlc = lanpr_create_render_line_chain(rb);
rlc->object_ref = rl->object_ref; /* can only be the same object in a chain. */
+ rlc->type = (rl->flags & LANPR_EDGE_FLAG_ALL_TYPE);
int r1, r2, c1, c2, row, col;
LANPR_RenderLine *new_rl = rl;
@@ -639,7 +640,8 @@ void lanpr_connect_chains(LANPR_RenderBuffer *rb, int do_geometry_space)
continue;
}
if (cre->rlc == rlc ||
- ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion) {
+ ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion||
+ (cre->rlc->type != rlc->type)) {
continue;
}
if (cre->rlc->picked) {
@@ -685,7 +687,8 @@ void lanpr_connect_chains(LANPR_RenderBuffer *rb, int do_geometry_space)
continue;
}
if (cre->rlc == rlc ||
- ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion) {
+ ((LANPR_RenderLineChainItem *)cre->rlc->chain.first)->occlusion != occlusion||
+ (cre->rlc->type != rlc->type)) {
continue;
}
if (cre->rlc->picked) {
diff --git a/source/blender/draw/engines/lanpr/lanpr_data_types.h b/source/blender/draw/engines/lanpr/lanpr_data_types.h
index 1f5eb4ac56c..ef00f5a67df 100644
--- a/source/blender/draw/engines/lanpr/lanpr_data_types.h
+++ b/source/blender/draw/engines/lanpr/lanpr_data_types.h
@@ -127,6 +127,7 @@ typedef struct LANPR_RenderLineChain {
float length; /* calculated before draw cmd. */
char picked; /* used when re-connecting and gp stroke generation */
char level;
+ int type; /* Chain now only contains one type of segments */
struct Object *object_ref;
} LANPR_RenderLineChain;
More information about the Bf-blender-cvs
mailing list