[Bf-blender-cvs] [e1c4e5df225] master: GPencil: New option to export PDF full scene

Antonio Vazquez noreply at git.blender.org
Mon Nov 8 16:20:58 CET 2021


Commit: e1c4e5df225d161648a12a7019543a0d87ccb2c1
Author: Antonio Vazquez
Date:   Mon Nov 8 16:03:30 2021 +0100
Branches: master
https://developer.blender.org/rBe1c4e5df225d161648a12a7019543a0d87ccb2c1

GPencil: New option to export PDF full scene

This new mode export all frames of the scene.

Reviewed By: pepeland

Differential Revision: https://developer.blender.org/D13055

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

M	source/blender/editors/io/io_gpencil_export.c
M	source/blender/io/gpencil/gpencil_io.h
M	source/blender/io/gpencil/intern/gpencil_io_capi.cc

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

diff --git a/source/blender/editors/io/io_gpencil_export.c b/source/blender/editors/io/io_gpencil_export.c
index b49be324372..556fae70828 100644
--- a/source/blender/editors/io/io_gpencil_export.c
+++ b/source/blender/editors/io/io_gpencil_export.c
@@ -410,6 +410,7 @@ void WM_OT_gpencil_export_pdf(wmOperatorType *ot)
   static const EnumPropertyItem gpencil_export_frame_items[] = {
       {GP_EXPORT_FRAME_ACTIVE, "ACTIVE", 0, "Active", "Include only active frame"},
       {GP_EXPORT_FRAME_SELECTED, "SELECTED", 0, "Selected", "Include selected frames"},
+      {GP_EXPORT_FRAME_SCENE, "SCENE", 0, "Scene", "Include all scene frames"},
       {0, NULL, 0, NULL, NULL},
   };
 
diff --git a/source/blender/io/gpencil/gpencil_io.h b/source/blender/io/gpencil/gpencil_io.h
index fab867b38b3..cb004910c1e 100644
--- a/source/blender/io/gpencil/gpencil_io.h
+++ b/source/blender/io/gpencil/gpencil_io.h
@@ -82,6 +82,7 @@ typedef enum eGpencilExportSelect {
 typedef enum eGpencilExportFrame {
   GP_EXPORT_FRAME_ACTIVE = 0,
   GP_EXPORT_FRAME_SELECTED = 1,
+  GP_EXPORT_FRAME_SCENE = 2,
 } eGpencilExportFrame;
 
 bool gpencil_io_export(const char *filename, struct GpencilIOParams *iparams);
diff --git a/source/blender/io/gpencil/intern/gpencil_io_capi.cc b/source/blender/io/gpencil/intern/gpencil_io_capi.cc
index 544c51e0b4f..95f5839682f 100644
--- a/source/blender/io/gpencil/intern/gpencil_io_capi.cc
+++ b/source/blender/io/gpencil/intern/gpencil_io_capi.cc
@@ -112,32 +112,39 @@ static bool gpencil_io_export_pdf(Depsgraph *depsgraph,
   exporter->frame_number_set(iparams->frame_cur);
   result |= exporter->new_document();
 
-  const bool use_frame_selected = (iparams->frame_mode == GP_EXPORT_FRAME_SELECTED);
-  if (use_frame_selected) {
-    for (int32_t i = iparams->frame_start; i < iparams->frame_end + 1; i++) {
-      if (!is_keyframe_included(gpd_eval, i, use_frame_selected)) {
-        continue;
-      }
-
-      CFRA = i;
-      BKE_scene_graph_update_for_newframe(depsgraph);
+  switch (iparams->frame_mode) {
+    case GP_EXPORT_FRAME_ACTIVE: {
       exporter->prepare_camera_params(scene, iparams);
-      exporter->frame_number_set(i);
       exporter->add_newpage();
       exporter->add_body();
+      result = exporter->write();
+      break;
     }
-    result = exporter->write();
-    /* Back to original frame. */
-    exporter->frame_number_set(iparams->frame_cur);
-    CFRA = iparams->frame_cur;
-    BKE_scene_camera_switch_update(scene);
-    BKE_scene_graph_update_for_newframe(depsgraph);
-  }
-  else {
-    exporter->prepare_camera_params(scene, iparams);
-    exporter->add_newpage();
-    exporter->add_body();
-    result = exporter->write();
+    case GP_EXPORT_FRAME_SELECTED:
+    case GP_EXPORT_FRAME_SCENE: {
+      for (int32_t i = iparams->frame_start; i < iparams->frame_end + 1; i++) {
+        if ((iparams->frame_mode == GP_EXPORT_FRAME_SELECTED) &&
+            (!is_keyframe_included(gpd_eval, i, true))) {
+          continue;
+        }
+
+        CFRA = i;
+        BKE_scene_graph_update_for_newframe(depsgraph);
+        exporter->prepare_camera_params(scene, iparams);
+        exporter->frame_number_set(i);
+        exporter->add_newpage();
+        exporter->add_body();
+      }
+      result = exporter->write();
+      /* Back to original frame. */
+      exporter->frame_number_set(iparams->frame_cur);
+      CFRA = iparams->frame_cur;
+      BKE_scene_camera_switch_update(scene);
+      BKE_scene_graph_update_for_newframe(depsgraph);
+      break;
+    }
+    default:
+      break;
   }
 
   return result;



More information about the Bf-blender-cvs mailing list