[Bf-blender-cvs] [4ff47d66b38] soc-2019-npr: LANPR: GP target updater overwrite option.
YimingWu
noreply at git.blender.org
Fri Jul 5 02:21:41 CEST 2019
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);
More information about the Bf-blender-cvs
mailing list