summaryrefslogtreecommitdiff
path: root/core/fpdfapi/page
diff options
context:
space:
mode:
authorHenrique Nakashima <hnakashima@chromium.org>2018-03-21 13:51:35 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-03-21 13:51:35 +0000
commita17ac192c043a6bce51e16cf7cd076087c78d9a9 (patch)
treeada8a1cf8d265d69bef1ad94901990da3b3f9c64 /core/fpdfapi/page
parentc3cffbedb5ff83afa4fde51e98509f915997ff4a (diff)
downloadpdfium-a17ac192c043a6bce51e16cf7cd076087c78d9a9.tar.xz
Explain how CPDF_Page::GetDisplayMatrix() inverts y.
Change-Id: Ia6e9fe790065d0bfd288d425c10d1dd9e0cf8c31 Reviewed-on: https://pdfium-review.googlesource.com/28850 Reviewed-by: dsinclair <dsinclair@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'core/fpdfapi/page')
-rw-r--r--core/fpdfapi/page/cpdf_page.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/fpdfapi/page/cpdf_page.cpp b/core/fpdfapi/page/cpdf_page.cpp
index 0c8d63de71..6518d80aa3 100644
--- a/core/fpdfapi/page/cpdf_page.cpp
+++ b/core/fpdfapi/page/cpdf_page.cpp
@@ -133,6 +133,12 @@ CFX_Matrix CPDF_Page::GetDisplayMatrix(int xPos,
float x2 = 0;
float y2 = 0;
iRotate %= 4;
+ // This code implicitly inverts the y-axis to account for page coordinates
+ // pointing up and bitmap coordinates pointing down. (x0, y0) is the base
+ // point, (x1, y1) is that point translated on y and (x2, y2) is the point
+ // translated on x. On iRotate = 0, y0 is (yPos + ySize) and the translation
+ // to get y1 is performed as negative. This results in the desired
+ // transformation.
switch (iRotate) {
case 0:
x0 = xPos;