summaryrefslogtreecommitdiff
path: root/platform/windows/mupdfwinrt/muctx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/windows/mupdfwinrt/muctx.cpp')
-rw-r--r--platform/windows/mupdfwinrt/muctx.cpp23
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);