diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2021-05-17 14:06:59 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2021-05-17 14:06:59 +0300 |
commit | 50eceb2a375870bc583ac237d356ee16643508c7 (patch) | |
tree | b28b1e7a5625c06dc7091771faa25daa6b7d2dc4 | |
parent | ba698f081270f807820a63355a3c7bb83f5f5a38 (diff) | |
parent | bb32ecadb5be0012fb0f06dcb83dce66fd5cd871 (diff) |
Merge branch 'blender-v2.93-release'
-rw-r--r-- | source/blender/io/gpencil/intern/gpencil_io_base.cc | 13 | ||||
-rw-r--r-- | source/blender/io/gpencil/intern/gpencil_io_base.hh | 1 | ||||
-rw-r--r-- | source/blender/io/gpencil/intern/gpencil_io_capi.cc | 4 |
3 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/io/gpencil/intern/gpencil_io_base.cc b/source/blender/io/gpencil/intern/gpencil_io_base.cc index bfa3abb1dcd..e79a2bc98ff 100644 --- a/source/blender/io/gpencil/intern/gpencil_io_base.cc +++ b/source/blender/io/gpencil/intern/gpencil_io_base.cc @@ -69,6 +69,17 @@ GpencilIO::GpencilIO(const GpencilIOParams *iparams) cfra_ = iparams->frame_cur; /* Calculate camera matrix. */ + prepare_camera_params(iparams); +} + +void GpencilIO::prepare_camera_params(const GpencilIOParams *iparams) +{ + params_ = *iparams; + const bool is_pdf = params_.mode == GP_EXPORT_TO_PDF; + const bool any_camera = (params_.v3d->camera != nullptr); + const bool force_camera_view = is_pdf && any_camera; + + /* Calculate camera matrix. */ Object *cam_ob = params_.v3d->camera; if (cam_ob != nullptr) { /* Set up parameters. */ @@ -96,7 +107,7 @@ GpencilIO::GpencilIO(const GpencilIOParams *iparams) winy_ = params_.region->winy; /* Camera rectangle. */ - if (rv3d_->persp == RV3D_CAMOB) { + if ((rv3d_->persp == RV3D_CAMOB) || (force_camera_view)) { render_x_ = (scene_->r.xsch * scene_->r.size) / 100; render_y_ = (scene_->r.ysch * scene_->r.size) / 100; diff --git a/source/blender/io/gpencil/intern/gpencil_io_base.hh b/source/blender/io/gpencil/intern/gpencil_io_base.hh index cbcd35e470d..2e1e1707c78 100644 --- a/source/blender/io/gpencil/intern/gpencil_io_base.hh +++ b/source/blender/io/gpencil/intern/gpencil_io_base.hh @@ -50,6 +50,7 @@ class GpencilIO { GpencilIO(const GpencilIOParams *iparams); void frame_number_set(const int value); + void prepare_camera_params(const GpencilIOParams *iparams); protected: GpencilIOParams params_; diff --git a/source/blender/io/gpencil/intern/gpencil_io_capi.cc b/source/blender/io/gpencil/intern/gpencil_io_capi.cc index a710c175a77..8093ec3c52d 100644 --- a/source/blender/io/gpencil/intern/gpencil_io_capi.cc +++ b/source/blender/io/gpencil/intern/gpencil_io_capi.cc @@ -121,6 +121,7 @@ static bool gpencil_io_export_pdf(Depsgraph *depsgraph, CFRA = i; BKE_scene_graph_update_for_newframe(depsgraph); + exporter->prepare_camera_params(iparams); exporter->frame_number_set(i); exporter->add_newpage(); exporter->add_body(); @@ -132,6 +133,7 @@ static bool gpencil_io_export_pdf(Depsgraph *depsgraph, BKE_scene_graph_update_for_newframe(depsgraph); } else { + exporter->prepare_camera_params(iparams); exporter->add_newpage(); exporter->add_body(); result = exporter->write(); @@ -151,6 +153,8 @@ static bool gpencil_io_export_frame_svg(GpencilExporterSVG *exporter, { bool result = false; exporter->frame_number_set(iparams->frame_cur); + exporter->prepare_camera_params(iparams); + if (newpage) { result |= exporter->add_newpage(); } |