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

Reply via email to