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
This commit is contained in:
parent
c865577643
commit
e1c4e5df22
|
@ -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},
|
||||
};
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue