summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfview.cpp
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-01-17 20:00:37 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-01-17 20:00:37 +0000
commit2914b6f1303445025764ec2d9f01a3be2df5cec0 (patch)
tree6aacd2a1acbef8ef44f7eaaa5c0a5da36dff3d7b /fpdfsdk/fpdfview.cpp
parentc37fa7d9c5c60ac407b46bfc2e7745afa0b2df85 (diff)
downloadpdfium-2914b6f1303445025764ec2d9f01a3be2df5cec0.tar.xz
Fix behavior of FPDF_RenderPageBitmapWithMatrix
This functional part of this CL is mostly a revert of "Change behaviour of FPDF_RenderPageBitmapWithMatrix" 24b0733a72bbc4013bff8628f198b0aea807aa06 Besides the revert, the parameters passed to pPage->GetDisplayMatrix() are changed to fix a bug with the previous implementation: the page was scaled to fit inside the clipping_rect, instead of clipped. Bug: pdfium:849 Change-Id: I95d0a303a979c998026a3bd6963c8684a1209f03 Reviewed-on: https://pdfium-review.googlesource.com/22931 Reviewed-by: Nicolás Peña Moreno <npm@chromium.org> Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: Henrique Nakashima <hnakashima@chromium.org>
Diffstat (limited to 'fpdfsdk/fpdfview.cpp')
-rw-r--r--fpdfsdk/fpdfview.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index cec44a48f9..97fc02a234 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -1034,13 +1034,16 @@ FPDF_RenderPageBitmapWithMatrix(FPDF_BITMAP bitmap,
if (clipping)
clipping_rect = CFXFloatRectFromFSRECTF(*clipping);
FX_RECT clip_rect = clipping_rect.ToFxRect();
- RenderPageImpl(
- pContext, pPage,
- pPage->GetDisplayMatrixWithTransformation(
- clip_rect.left, clip_rect.top, clip_rect.Width(), clip_rect.Height(),
- CFX_Matrix(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e,
- matrix->f)),
- clip_rect, flags, true, nullptr);
+
+ CFX_Matrix transform_matrix = pPage->GetDisplayMatrix(
+ 0, 0, pPage->GetPageWidth(), pPage->GetPageHeight(), 0);
+
+ if (matrix) {
+ transform_matrix.Concat(CFX_Matrix(matrix->a, matrix->b, matrix->c,
+ matrix->d, matrix->e, matrix->f));
+ }
+ RenderPageImpl(pContext, pPage, transform_matrix, clip_rect, flags, true,
+ nullptr);
pPage->SetRenderContext(nullptr);
}