diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2012-01-12 01:12:28 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2012-01-12 01:12:28 +0100 |
commit | 9994b3f49db7bd925a7ae7874cbc99025469ee9e (patch) | |
tree | c718919738e0c70cc94959aad1b5b4997f11389f /ios | |
parent | 09086b236af6e49f2f090f80a450b1d82f217f30 (diff) | |
download | mupdf-9994b3f49db7bd925a7ae7874cbc99025469ee9e.tar.xz |
Use the same coordinate system for pdf and xps pages in the interface.
Move coordinate space tweaks into pdf_ and xps_run_page, and provide
neutral pdf_ and xps_bound_page functions to return the page size as
a zero-origined bounding box.
Diffstat (limited to 'ios')
-rw-r--r-- | ios/document.c | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/ios/document.c b/ios/document.c index dd893362..3d014d6b 100644 --- a/ios/document.c +++ b/ios/document.c @@ -120,15 +120,14 @@ measure_page(struct document *doc, int number, float *w, float *h) { load_page(doc, number); if (doc->pdf_page) { - pdf_page *page = doc->pdf_page; - fz_rect mediabox = fz_transform_rect(fz_rotate(page->rotate), page->mediabox); - *w = mediabox.x1 - mediabox.x0; - *h = mediabox.y1 - mediabox.y0; + fz_rect bounds = pdf_bound_page(doc->pdf, doc->pdf_page); + *w = bounds.x1 - bounds.x0; + *h = bounds.y1 - bounds.y0; } else if (doc->xps_page) { - xps_page *page = doc->xps_page; - *w = page->width * 72.0f / 96.0f; - *h = page->height * 72.0f / 96.0f; + fz_rect bounds = xps_bound_page(doc->xps, doc->xps_page); + *w = bounds.x1 - bounds.x0; + *h = bounds.y1 - bounds.y0; } else { *w = *h = 72; @@ -143,17 +142,9 @@ draw_page(struct document *doc, int number, fz_device *dev, fz_matrix ctm, fz_co fz_try (doc->ctx) { if (doc->pdf_page) { - pdf_page *page = doc->pdf_page; - fz_matrix page_ctm = fz_concat(fz_rotate(-page->rotate), fz_scale(1, -1)); - fz_rect mediabox = fz_transform_rect(page_ctm, page->mediabox); - page_ctm = fz_concat(page_ctm, fz_translate(-mediabox.x0, -mediabox.y0)); - ctm = fz_concat(page_ctm, ctm); - pdf_run_page(doc->pdf, page, dev, ctm, cookie); + pdf_run_page(doc->pdf, doc->pdf_page, dev, ctm, cookie); } else if (doc->xps_page) { - xps_page *page = doc->xps_page; - fz_matrix page_ctm = fz_scale(72.0f / 96.0f, 72.0f / 96.0f); - ctm = fz_concat(page_ctm, ctm); - xps_run_page(doc->xps, page, dev, ctm, cookie); + xps_run_page(doc->xps, doc->xps_page, dev, ctm, cookie); } } fz_catch (doc->ctx) |