[Bf-blender-cvs] [2d247cbda1d] soc-2019-npr: LANPR: GP stroke bake function.

YimingWu noreply at git.blender.org
Thu Jun 27 10:04:54 CEST 2019


Commit: 2d247cbda1d66c4e3e85d5d6a8fb1b6b5163906d
Author: YimingWu
Date:   Thu Jun 27 15:48:54 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB2d247cbda1d66c4e3e85d5d6a8fb1b6b5163906d

LANPR: GP stroke bake function.

===================================================================

M	source/blender/draw/engines/lanpr/lanpr_ops.c
M	source/blender/editors/render/render_intern.h
M	source/blender/editors/render/render_ops.c

===================================================================

diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 97bbc797c32..56596ec853a 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -4542,6 +4542,32 @@ int lanpr_update_gp_strokes_exec(struct bContext *C, struct wmOperator *op)
 
   lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame);
 
+  return OPERATOR_FINISHED;
+}
+int lanpr_bake_gp_strokes_exec(struct bContext *C, struct wmOperator *op)
+{
+  Scene *scene = CTX_data_scene(C);
+  Depsgraph *dg = CTX_data_depsgraph(C);
+  SceneLANPR *lanpr = &scene->lanpr;
+  int frame, current_frame = scene->r.cfra;
+  int frame_begin = scene->r.sfra;
+  int frame_end = scene->r.efra;
+
+  for(frame = frame_begin;frame<=frame_end;frame++){
+    //BKE_scene_frame_set(scene,frame);
+    DEG_evaluate_on_framechange(CTX_data_main(C),dg,frame);
+
+    lanpr_compute_feature_lines_internal(dg);
+
+    lanpr_chain_clear_picked_flag(lanpr_share.render_buffer_shared);
+
+    lanpr_update_gp_strokes_recursive(dg, scene->master_collection, frame);
+
+    lanpr_update_gp_strokes_collection(dg, scene->master_collection, frame);
+  }
+
+  
+
   return OPERATOR_FINISHED;
 }
 
@@ -4639,3 +4665,13 @@ void SCENE_OT_lanpr_update_gp_strokes(struct wmOperatorType *ot)
 
   ot->exec = lanpr_update_gp_strokes_exec;
 }
+
+void SCENE_OT_lanpr_bake_gp_strokes(struct wmOperatorType *ot)
+{
+  ot->name = "Bake LANPR Strokes";
+  ot->description = "Bake strokes for LANPR grease pencil targets in all frames";
+  ot->idname = "SCENE_OT_lanpr_bake_gp_strokes";
+
+  ot->exec = lanpr_bake_gp_strokes_exec;
+}
+
diff --git a/source/blender/editors/render/render_intern.h b/source/blender/editors/render/render_intern.h
index fe04b2a420c..5b9f648e1d3 100644
--- a/source/blender/editors/render/render_intern.h
+++ b/source/blender/editors/render/render_intern.h
@@ -85,6 +85,7 @@ void SCENE_OT_lanpr_add_line_component(struct wmOperatorType *ot);
 void SCENE_OT_lanpr_delete_line_component(struct wmOperatorType *ot);
 void SCENE_OT_lanpr_enable_all_line_types(struct wmOperatorType *ot);
 void SCENE_OT_lanpr_update_gp_strokes(struct wmOperatorType *ot);
+void SCENE_OT_lanpr_bake_gp_strokes(struct wmOperatorType *ot);
 
 void TEXTURE_OT_slot_copy(struct wmOperatorType *ot);
 void TEXTURE_OT_slot_paste(struct wmOperatorType *ot);
diff --git a/source/blender/editors/render/render_ops.c b/source/blender/editors/render/render_ops.c
index 853b8cd8cf7..bfeb2c215ce 100644
--- a/source/blender/editors/render/render_ops.c
+++ b/source/blender/editors/render/render_ops.c
@@ -90,6 +90,7 @@ void ED_operatortypes_render(void)
   WM_operatortype_append(SCENE_OT_lanpr_delete_line_component);
   WM_operatortype_append(SCENE_OT_lanpr_enable_all_line_types);
   WM_operatortype_append(SCENE_OT_lanpr_update_gp_strokes);
+  WM_operatortype_append(SCENE_OT_lanpr_bake_gp_strokes);
 
   WM_operatortype_append(TEXTURE_OT_slot_copy);
   WM_operatortype_append(TEXTURE_OT_slot_paste);



More information about the Bf-blender-cvs mailing list