diff options
Diffstat (limited to 'platform/windows/mupdfwinrt/muctx.cpp')
-rw-r--r-- | platform/windows/mupdfwinrt/muctx.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/platform/windows/mupdfwinrt/muctx.cpp b/platform/windows/mupdfwinrt/muctx.cpp index d5c34c80..e51ea403 100644 --- a/platform/windows/mupdfwinrt/muctx.cpp +++ b/platform/windows/mupdfwinrt/muctx.cpp @@ -531,6 +531,21 @@ fz_display_list * muctx::CreateDisplayList(int page_num, int *width, int *height return dlist; } +void muctx::ReleaseDisplayLists(void *opdlist, void *opannotlist) +{ + fz_display_list *dlist = (fz_display_list*) opdlist; + fz_display_list *annotlist = (fz_display_list*) opannotlist; + + if (dlist != NULL) + { + fz_drop_display_list(mu_ctx, dlist); + } + if (annotlist != NULL) + { + fz_drop_display_list(mu_ctx, annotlist); + } +} + /* A special version which will create the display list AND get the information that we need for various text selection tasks */ fz_display_list * muctx::CreateDisplayListText(int page_num, int *width, int *height, @@ -648,8 +663,6 @@ status_t muctx::RenderPageMT(void *dlist, void *a_dlist, int page_width, int pag { fz_free_device(dev); fz_drop_pixmap(ctx_clone, pix); - fz_drop_display_list(ctx_clone, display_list); - fz_drop_display_list(ctx_clone, annot_displaylist); } fz_catch(ctx_clone) { @@ -689,11 +702,11 @@ status_t muctx::RenderPage(int page_num, unsigned char *bmp_data, int bmp_width, bmp_height, bmp_data); fz_clear_pixmap_with_value(mu_ctx, pix, 255); dev = fz_new_draw_device(mu_ctx, pix); - fz_run_page(mu_doc, page, dev, pctm, NULL); + fz_run_page_contents(mu_doc, page, dev, pctm, NULL); fz_annot *annot; for (annot = fz_first_annot(mu_doc, page); annot; annot = fz_next_annot(mu_doc, annot)) - fz_run_annot(mu_doc, page, annot, dev, &fz_identity, NULL); + fz_run_annot(mu_doc, page, annot, dev, pctm, NULL); } fz_always(mu_ctx) { @@ -879,8 +892,6 @@ status_t muctx::SavePage(char *filename, int page_num, int resolution, int type, fz_drop_pixmap(mu_ctx, pix); fz_free_device(dev); fz_free_page(mu_doc, page); - if (dlist != NULL) - fz_drop_display_list(mu_ctx, dlist); if (out != NULL) { fz_close_output(out); |