diff options
author | Robin Watts <robin.watts@artifex.com> | 2017-09-27 17:31:59 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2017-09-27 18:05:14 +0100 |
commit | 0cf2cd4eb8b1ef891a853c0abb9ca8a317638969 (patch) | |
tree | 9683b2b15627ab38704c57c0bbddf9e9f145ed8d /source | |
parent | c2663e51238ec8256da7fc61ad580db891d9fe9a (diff) | |
download | mupdf-0cf2cd4eb8b1ef891a853c0abb9ca8a317638969.tar.xz |
Bug 698588: Short circuit plotting of images if alpha == 0.
Diffstat (limited to 'source')
-rw-r--r-- | source/fitz/draw-affine.c | 3 | ||||
-rw-r--r-- | source/fitz/draw-device.c | 6 | ||||
-rw-r--r-- | source/fitz/draw-paint.c | 3 |
3 files changed, 12 insertions, 0 deletions
diff --git a/source/fitz/draw-affine.c b/source/fitz/draw-affine.c index 861d56a0..048dd6ba 100644 --- a/source/fitz/draw-affine.c +++ b/source/fitz/draw-affine.c @@ -3387,6 +3387,9 @@ fz_paint_image_imp(fz_pixmap * restrict dst, const fz_irect *scissor, const fz_p fz_rect rect; int is_rectilinear; + if (alpha == 0) + return; + /* grid fit the image */ fz_gridfit_matrix(as_tiled, &local_ctm); diff --git a/source/fitz/draw-device.c b/source/fitz/draw-device.c index e001c3ea..9180e360 100644 --- a/source/fitz/draw-device.c +++ b/source/fitz/draw-device.c @@ -1330,6 +1330,9 @@ fz_draw_fill_image(fz_context *ctx, fz_device *devp, fz_image *image, const fz_m fz_colorspace *src_cs; fz_colorspace *prf = fz_proof_cs(ctx, dev); + if (alpha == 0) + return; + if (dev->top == 0 && dev->resolve_spots) state = push_group_for_separations(ctx, dev, color_params, prf, dev->default_cs); @@ -1477,6 +1480,9 @@ fz_draw_fill_image_mask(fz_context *ctx, fz_device *devp, fz_image *image, const fz_colorspace *colorspace = NULL; fz_colorspace *prf = fz_proof_cs(ctx, dev); + if (alpha == 0) + return; + if (dev->top == 0 && dev->resolve_spots) state = push_group_for_separations(ctx, dev, color_params, prf, dev->default_cs); diff --git a/source/fitz/draw-paint.c b/source/fitz/draw-paint.c index 76f9638a..ac3a6629 100644 --- a/source/fitz/draw-paint.c +++ b/source/fitz/draw-paint.c @@ -1861,6 +1861,9 @@ fz_paint_pixmap_with_bbox(fz_pixmap * restrict dst, const fz_pixmap * restrict s assert(dst->n - dst->alpha == src->n - src->alpha); + if (alpha == 0) + return; + fz_pixmap_bbox_no_ctx(dst, &bbox2); fz_intersect_irect(&bbox, &bbox2); fz_pixmap_bbox_no_ctx(src, &bbox2); |