[Bf-blender-cvs] [a0c45cdaa48] soc-2019-npr: LANPR: selective line type now working for objects and collections
YimingWu
noreply at git.blender.org
Thu Jun 27 08:44:20 CEST 2019
Commit: a0c45cdaa48d0ec74f7daa8909899cc44c014058
Author: YimingWu
Date: Thu Jun 27 14:43:37 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBa0c45cdaa48d0ec74f7daa8909899cc44c014058
LANPR: selective line type now working for objects and collections
===================================================================
M source/blender/draw/engines/lanpr/lanpr_access.c
M source/blender/draw/engines/lanpr/lanpr_access.h
M source/blender/draw/engines/lanpr/lanpr_chain.c
M source/blender/draw/engines/lanpr/lanpr_ops.c
===================================================================
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.c b/source/blender/draw/engines/lanpr/lanpr_access.c
index eb737377ff9..4c380623485 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.c
+++ b/source/blender/draw/engines/lanpr/lanpr_access.c
@@ -46,7 +46,8 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
int qi_begin,
int qi_end,
int material_nr,
- Collection *col)
+ Collection *col,
+ int types)
{
Scene *scene = DEG_get_evaluated_scene(depsgraph);
LANPR_RenderBuffer *rb = lanpr_share.render_buffer_shared;
@@ -81,6 +82,9 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
if (!rlc->object_ref) {
continue; /* intersection lines are lost! */
}
+ if(!(rlc->type & types)){
+ continue;
+ }
if (rlc->level > qi_end || rlc->level < qi_begin) {
continue;
}
diff --git a/source/blender/draw/engines/lanpr/lanpr_access.h b/source/blender/draw/engines/lanpr/lanpr_access.h
index a8d34ed2bb8..556f07107e6 100644
--- a/source/blender/draw/engines/lanpr/lanpr_access.h
+++ b/source/blender/draw/engines/lanpr/lanpr_access.h
@@ -17,7 +17,8 @@ void lanpr_generate_gpencil_from_chain(Depsgraph *depsgraph,
int qi_begin,
int qi_end,
int material_nr,
- struct Collection *col);
+ struct Collection *col,
+ int types);
void lanpr_update_data_for_external(Depsgraph *depsgraph);
diff --git a/source/blender/draw/engines/lanpr/lanpr_chain.c b/source/blender/draw/engines/lanpr/lanpr_chain.c
index 0cde4ce5f04..dccccdb9acd 100644
--- a/source/blender/draw/engines/lanpr/lanpr_chain.c
+++ b/source/blender/draw/engines/lanpr/lanpr_chain.c
@@ -551,6 +551,7 @@ void lanpr_split_chains_for_fixed_occlusion(LANPR_RenderBuffer *rb)
rlci->line_type,
fixed_occ);
new_rlc->object_ref = rlc->object_ref;
+ new_rlc->type = rlc->type;
rlc = new_rlc;
fixed_occ = rlci->occlusion;
rlc->level = fixed_occ;
diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 0ec9647e77c..97bbc797c32 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4478,7 +4478,8 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in
flmd->use_multiple_levels ? flmd->level_end :
flmd->level_begin,
flmd->material,
- NULL);
+ NULL,
+ flmd->types);
}
}
}
@@ -4525,7 +4526,8 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i
col->lanpr.use_multiple_levels ? col->lanpr.level_end :
col->lanpr.level_begin,
col->lanpr.material,
- col);
+ col,
+ col->lanpr.types);
}
int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op)
{
More information about the Bf-blender-cvs
mailing list