diff options
author | Henrique Nakashima <hnakashima@chromium.org> | 2018-01-17 20:00:37 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-01-17 20:00:37 +0000 |
commit | 2914b6f1303445025764ec2d9f01a3be2df5cec0 (patch) | |
tree | 6aacd2a1acbef8ef44f7eaaa5c0a5da36dff3d7b /fpdfsdk/fpdfview.cpp | |
parent | c37fa7d9c5c60ac407b46bfc2e7745afa0b2df85 (diff) | |
download | pdfium-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.cpp | 17 |
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); } |