Commit: 4ff47d66b38c0b7306ec8f8939d7052ba8e103f3 Author: YimingWu Date: Fri Jul 5 08:21:10 2019 +0800 Branches: soc-2019-npr https://developer.blender.org/rB4ff47d66b38c0b7306ec8f8939d7052ba8e103f3
LANPR: GP target updater overwrite option. =================================================================== M release/scripts/startup/bl_ui/properties_render.py M source/blender/draw/engines/lanpr/lanpr_ops.c M source/blender/makesdna/DNA_scene_types.h M source/blender/makesrna/intern/rna_scene.c =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py index baa64787845..7c487a3c4de 100644 --- a/release/scripts/startup/bl_ui/properties_render.py +++ b/release/scripts/startup/bl_ui/properties_render.py @@ -742,8 +742,12 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel): if mode == "SOFTWARE" or mode == "DPIX": if scene.render.engine!="BLENDER_LANPR": - row=layout.row() - row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') + row=layout.row(align=True) + row.prop(lanpr,"auto_update",toggle=True,text='Auto Update') + row.prop(lanpr,"gpencil_overwrite",toggle=True,text='Overwrite') + if not lanpr.auto_update: + row=layout.row() + row.operator("scene.lanpr_update_gp_strokes", icon='RENDER_STILL', text='Update GPencil Targets') row=layout.row() row.operator("scene.lanpr_bake_gp_strokes", icon='RENDER_ANIMATION', text='Bake All Frames') else: diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c index ad27ea33bac..a91a01c07fd 100644 --- a/source/blender/draw/engines/lanpr/lanpr_ops.c +++ b/source/blender/draw/engines/lanpr/lanpr_ops.c @@ -4724,6 +4724,11 @@ void lanpr_update_gp_strokes_recursive(Depsgraph *dg, struct Collection *col, in } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); + if (gpf->strokes.first && + !lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) { + continue; + } + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { BKE_gpencil_free_strokes(gpf); gpf->flag |= GP_FRAME_LANPR_CLEARED; @@ -4777,6 +4782,10 @@ void lanpr_update_gp_strokes_collection(Depsgraph *dg, struct Collection *col, i } gpf = BKE_gpencil_layer_getframe(gpl, frame, GP_GETFRAME_ADD_NEW); + if (gpf->strokes.first && !lanpr_share.render_buffer_shared->scene->lanpr.gpencil_overwrite) { + return; + } + if (!(gpf->flag & GP_FRAME_LANPR_CLEARED)) { BKE_gpencil_free_strokes(gpf); gpf->flag |= GP_FRAME_LANPR_CLEARED; diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 8f959e1e090..f8f2031d7ae 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -1696,7 +1696,8 @@ typedef struct SceneLANPR { float chaining_geometry_threshold; float chaining_image_threshold; - char _pad2[4]; + /* Overwrite existing strokes in this frame. */ + int gpencil_overwrite; } SceneLANPR; diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index fd1a2025f66..c1905b25038 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -7211,6 +7211,12 @@ static void rna_def_scene_lanpr(BlenderRNA *brna) RNA_def_property_ui_text( prop, "Auto Update", "Automatically update LANPR cache when scene changes"); + prop = RNA_def_property(srna, "gpencil_overwrite", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_default(prop, 0); + RNA_def_property_ui_text(prop, + "GPencil Overwrite", + "Overwrite existing strokes in the current frame of target GP objects"); + prop = RNA_def_property(srna, "reloaded", PROP_ENUM, PROP_NONE); RNA_def_property_enum_items(prop, DEBUG_rna_enum_lanpr_reload); RNA_def_property_enum_default(prop, 0); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs