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; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs