[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