diff options
Diffstat (limited to 'source/blender/io/gpencil/intern/gpencil_io_base.cc')
-rw-r--r-- | source/blender/io/gpencil/intern/gpencil_io_base.cc | 13 |
1 files changed, 12 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; |