diff options
-rw-r--r-- | apps/pdfapp.c | 4 | ||||
-rw-r--r-- | apps/xpsdraw.c | 16 | ||||
-rw-r--r-- | ios/document.c | 4 | ||||
-rw-r--r-- | xps/muxps.h | 3 | ||||
-rw-r--r-- | xps/xps_tile.c | 10 |
5 files changed, 19 insertions, 18 deletions
diff --git a/apps/pdfapp.c b/apps/pdfapp.c index 5f7e79dc..0f8dd7e3 100644 --- a/apps/pdfapp.c +++ b/apps/pdfapp.c @@ -353,9 +353,7 @@ static void pdfapp_loadpage_xps(pdfapp_t *app) /* Create display list */ app->page_list = fz_new_display_list(app->ctx); mdev = fz_new_list_device(app->ctx, app->page_list); - app->xps->dev = mdev; - xps_parse_fixed_page(app->xps, fz_identity, page); - app->xps->dev = NULL; + xps_run_page(app->xps, page, mdev, fz_identity, NULL); fz_free_device(mdev); xps_free_page(app->xps, page); diff --git a/apps/xpsdraw.c b/apps/xpsdraw.c index cbf7f802..1058c390 100644 --- a/apps/xpsdraw.c +++ b/apps/xpsdraw.c @@ -72,14 +72,6 @@ static int isrange(char *s) return 1; } -static void -xps_run_page(xps_document *doc, xps_page *page, fz_device *dev, fz_matrix ctm) -{ - doc->dev = dev; - xps_parse_fixed_page(doc, ctm, page); - doc->dev = NULL; -} - static void drawpage(xps_document *doc, int pagenum) { xps_page *page; @@ -100,7 +92,7 @@ static void drawpage(xps_document *doc, int pagenum) { list = fz_new_display_list(doc->ctx); dev = fz_new_list_device(doc->ctx, list); - xps_run_page(doc, page, dev, fz_identity); + xps_run_page(doc, page, dev, fz_identity, NULL); fz_free_device(dev); } @@ -111,7 +103,7 @@ static void drawpage(xps_document *doc, int pagenum) if (list) fz_execute_display_list(list, dev, fz_identity, fz_infinite_bbox, NULL); else - xps_run_page(doc, page, dev, fz_identity); + xps_run_page(doc, page, dev, fz_identity, NULL); printf("</page>\n"); fz_free_device(dev); } @@ -123,7 +115,7 @@ static void drawpage(xps_document *doc, int pagenum) if (list) fz_execute_display_list(list, dev, fz_identity, fz_infinite_bbox, NULL); else - xps_run_page(doc, page, dev, fz_identity); + xps_run_page(doc, page, dev, fz_identity, NULL); fz_free_device(dev); printf("[Page %d]\n", pagenum); if (showtext > 1) @@ -167,7 +159,7 @@ static void drawpage(xps_document *doc, int pagenum) if (list) fz_execute_display_list(list, dev, ctm, bbox, NULL); else - xps_run_page(doc, page, dev, ctm); + xps_run_page(doc, page, dev, ctm, NULL); fz_free_device(dev); if (output) diff --git a/ios/document.c b/ios/document.c index 066f5209..dd893362 100644 --- a/ios/document.c +++ b/ios/document.c @@ -153,9 +153,7 @@ draw_page(struct document *doc, int number, fz_device *dev, fz_matrix ctm, fz_co 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); - doc->xps->dev = dev; - xps_parse_fixed_page(doc->xps, ctm, page); - doc->xps->dev = NULL; + xps_run_page(doc->xps, page, dev, ctm, cookie); } } fz_catch (doc->ctx) diff --git a/xps/muxps.h b/xps/muxps.h index 188935c8..95b68860 100644 --- a/xps/muxps.h +++ b/xps/muxps.h @@ -173,6 +173,8 @@ void xps_debug_resource_dictionary(xps_resource *dict); * Fixed page/graphics parsing. */ +void xps_run_page(xps_document *doc, xps_page *page, fz_device *dev, fz_matrix ctm, fz_cookie *cookie); + void xps_parse_fixed_page(xps_document *doc, fz_matrix ctm, xps_page *page); void xps_parse_canvas(xps_document *doc, fz_matrix ctm, fz_rect area, char *base_uri, xps_resource *dict, xml_element *node); void xps_parse_path(xps_document *doc, fz_matrix ctm, char *base_uri, xps_resource *dict, xml_element *node); @@ -244,6 +246,7 @@ struct xps_document_s float alpha; /* Current device */ + fz_cookie *cookie; fz_device *dev; }; diff --git a/xps/xps_tile.c b/xps/xps_tile.c index 1acdd369..842e4cda 100644 --- a/xps/xps_tile.c +++ b/xps/xps_tile.c @@ -356,3 +356,13 @@ xps_parse_fixed_page(xps_document *doc, fz_matrix ctm, xps_page *page) if (dict) xps_free_resource_dictionary(doc, dict); } + +void +xps_run_page(xps_document *doc, xps_page *page, fz_device *dev, fz_matrix ctm, fz_cookie *cookie) +{ + doc->cookie = cookie; + doc->dev = dev; + xps_parse_fixed_page(doc, ctm, page); + doc->cookie = NULL; + doc->dev = NULL; +} |