summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2016-06-23 12:33:30 +0200
committerRobin Watts <robin.watts@artifex.com>2016-06-23 16:10:29 +0100
commitcf7b2cbbfe6192fbf697237735ab45bc951304e4 (patch)
treeeac1231a33e79e7f8afa99d63e203b8fededecc4 /source
parent38ffc7fefeadb87929c2006d1e91394a516c3c9d (diff)
downloadmupdf-cf7b2cbbfe6192fbf697237735ab45bc951304e4.tar.xz
Update JNI code. Take explicit alpha argument in toPixmap functions.
Diffstat (limited to 'source')
-rw-r--r--source/fitz/util.c31
-rw-r--r--source/tools/murun.c5
2 files changed, 23 insertions, 13 deletions
diff --git a/source/fitz/util.c b/source/fitz/util.c
index d17cb18c..e1e17c25 100644
--- a/source/fitz/util.c
+++ b/source/fitz/util.c
@@ -80,7 +80,7 @@ fz_new_pixmap_from_display_list(fz_context *ctx, fz_display_list *list, const fz
}
fz_pixmap *
-fz_new_pixmap_from_page_contents(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz_colorspace *cs)
+fz_new_pixmap_from_page_contents(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz_colorspace *cs, int alpha)
{
fz_rect rect;
fz_irect irect;
@@ -91,8 +91,11 @@ fz_new_pixmap_from_page_contents(fz_context *ctx, fz_page *page, const fz_matrix
fz_transform_rect(&rect, ctm);
fz_round_rect(&irect, &rect);
- pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, 0);
- fz_clear_pixmap_with_value(ctx, pix, 0xFF);
+ pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, alpha);
+ if (alpha)
+ fz_clear_pixmap(ctx, pix);
+ else
+ fz_clear_pixmap_with_value(ctx, pix, 0xFF);
fz_try(ctx)
{
@@ -113,7 +116,7 @@ fz_new_pixmap_from_page_contents(fz_context *ctx, fz_page *page, const fz_matrix
}
fz_pixmap *
-fz_new_pixmap_from_annot(fz_context *ctx, fz_annot *annot, const fz_matrix *ctm, fz_colorspace *cs)
+fz_new_pixmap_from_annot(fz_context *ctx, fz_annot *annot, const fz_matrix *ctm, fz_colorspace *cs, int alpha)
{
fz_rect rect;
fz_irect irect;
@@ -124,8 +127,11 @@ fz_new_pixmap_from_annot(fz_context *ctx, fz_annot *annot, const fz_matrix *ctm,
fz_transform_rect(&rect, ctm);
fz_round_rect(&irect, &rect);
- pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, 1);
- fz_clear_pixmap(ctx, pix);
+ pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, alpha);
+ if (alpha)
+ fz_clear_pixmap(ctx, pix);
+ else
+ fz_clear_pixmap_with_value(ctx, pix, 0xFF);
fz_try(ctx)
{
@@ -146,7 +152,7 @@ fz_new_pixmap_from_annot(fz_context *ctx, fz_annot *annot, const fz_matrix *ctm,
}
fz_pixmap *
-fz_new_pixmap_from_page(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz_colorspace *cs)
+fz_new_pixmap_from_page(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz_colorspace *cs, int alpha)
{
fz_rect rect;
fz_irect irect;
@@ -157,8 +163,11 @@ fz_new_pixmap_from_page(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz
fz_transform_rect(&rect, ctm);
fz_round_rect(&irect, &rect);
- pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, 0);
- fz_clear_pixmap_with_value(ctx, pix, 0xFF);
+ pix = fz_new_pixmap_with_bbox(ctx, cs, &irect, alpha);
+ if (alpha)
+ fz_clear_pixmap(ctx, pix);
+ else
+ fz_clear_pixmap_with_value(ctx, pix, 0xFF);
fz_try(ctx)
{
@@ -179,14 +188,14 @@ fz_new_pixmap_from_page(fz_context *ctx, fz_page *page, const fz_matrix *ctm, fz
}
fz_pixmap *
-fz_new_pixmap_from_page_number(fz_context *ctx, fz_document *doc, int number, const fz_matrix *ctm, fz_colorspace *cs)
+fz_new_pixmap_from_page_number(fz_context *ctx, fz_document *doc, int number, const fz_matrix *ctm, fz_colorspace *cs, int alpha)
{
fz_page *page;
fz_pixmap *pix;
page = fz_load_page(ctx, doc, number);
fz_try(ctx)
- pix = fz_new_pixmap_from_page(ctx, page, ctm, cs);
+ pix = fz_new_pixmap_from_page(ctx, page, ctm, cs, alpha);
fz_always(ctx)
fz_drop_page(ctx, page);
fz_catch(ctx)
diff --git a/source/tools/murun.c b/source/tools/murun.c
index 5315a4f3..1f2f5e5f 100644
--- a/source/tools/murun.c
+++ b/source/tools/murun.c
@@ -1457,10 +1457,11 @@ static void ffi_Page_toPixmap(js_State *J)
fz_page *page = js_touserdata(J, 0, "fz_page");
fz_matrix ctm = ffi_tomatrix(J, 1);
fz_colorspace *colorspace = js_touserdata(J, 2, "fz_colorspace");
+ int alpha = js_toboolean(J, 3);
fz_pixmap *pixmap;
fz_try(ctx)
- pixmap = fz_new_pixmap_from_page(ctx, page, &ctm, colorspace);
+ pixmap = fz_new_pixmap_from_page(ctx, page, &ctm, colorspace, alpha);
fz_catch(ctx)
rethrow(J);
@@ -3100,7 +3101,7 @@ int murun_main(int argc, char **argv)
{
jsB_propfun(J, "Page.bound", ffi_Page_bound, 0);
jsB_propfun(J, "Page.run", ffi_Page_run, 2);
- jsB_propfun(J, "Page.toPixmap", ffi_Page_toPixmap, 1);
+ jsB_propfun(J, "Page.toPixmap", ffi_Page_toPixmap, 3);
jsB_propfun(J, "Page.toDisplayList", ffi_Page_toDisplayList, 0);
jsB_propfun(J, "Page.search", ffi_Page_search, 0);
}