Implement CFXMatrixFromFSMatrix().
Put it to use where appropriate.
Change-Id: I6a6cf20f76862af4d4fdd22411049357c0e768d9
Reviewed-on: https://pdfium-review.googlesource.com/c/47532
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_helpers.cpp b/fpdfsdk/cpdfsdk_helpers.cpp
index e2014aa..c288d24 100644
--- a/fpdfsdk/cpdfsdk_helpers.cpp
+++ b/fpdfsdk/cpdfsdk_helpers.cpp
@@ -260,6 +260,10 @@
out_rect->bottom = rect.bottom;
}
+CFX_Matrix CFXMatrixFromFSMatrix(const FS_MATRIX& matrix) {
+ return CFX_Matrix(matrix.a, matrix.b, matrix.c, matrix.d, matrix.e, matrix.f);
+}
+
unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
void* buffer,
unsigned long buflen) {
diff --git a/fpdfsdk/cpdfsdk_helpers.h b/fpdfsdk/cpdfsdk_helpers.h
index 241e976..c4e8109 100644
--- a/fpdfsdk/cpdfsdk_helpers.h
+++ b/fpdfsdk/cpdfsdk_helpers.h
@@ -233,6 +233,8 @@
CFX_FloatRect CFXFloatRectFromFSRECTF(const FS_RECTF& rect);
void FSRECTFFromCFXFloatRect(const CFX_FloatRect& rect, FS_RECTF* out_rect);
+CFX_Matrix CFXMatrixFromFSMatrix(const FS_MATRIX& matrix);
+
unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString& text,
void* buffer,
unsigned long buflen);
diff --git a/fpdfsdk/fpdf_transformpage.cpp b/fpdfsdk/fpdf_transformpage.cpp
index 076f22b..0a406cf 100644
--- a/fpdfsdk/fpdf_transformpage.cpp
+++ b/fpdfsdk/fpdf_transformpage.cpp
@@ -235,8 +235,7 @@
else
continue;
- CFX_Matrix m(matrix->a, matrix->b, matrix->c, matrix->d, matrix->e,
- matrix->f);
+ CFX_Matrix m = CFXMatrixFromFSMatrix(*matrix);
pDict->SetMatrixFor("Matrix", pDict->GetMatrixFor("Matrix") * m);
}
diff --git a/fpdfsdk/fpdf_view.cpp b/fpdfsdk/fpdf_view.cpp
index bcb9e35..eb61c3e 100644
--- a/fpdfsdk/fpdf_view.cpp
+++ b/fpdfsdk/fpdf_view.cpp
@@ -666,10 +666,8 @@
const FX_RECT rect(0, 0, pPage->GetPageWidth(), pPage->GetPageHeight());
CFX_Matrix transform_matrix = pPage->GetDisplayMatrix(rect, 0);
- if (matrix) {
- transform_matrix.Concat(CFX_Matrix(matrix->a, matrix->b, matrix->c,
- matrix->d, matrix->e, matrix->f));
- }
+ if (matrix)
+ transform_matrix *= CFXMatrixFromFSMatrix(*matrix);
RenderPageImpl(pContext, pPage, transform_matrix, clip_rect, flags, true,
nullptr);