diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2011-04-10 01:24:01 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2011-04-10 01:24:01 +0200 |
commit | d914e3415af1c9c7d8644dfa50fdcf9a79cc01d5 (patch) | |
tree | 42b1abdc4ebe58dd008d9f8906db24fa5187324d /pdf | |
parent | e8e507b38b8c4429abd6e7b32fe8e3029bfab065 (diff) | |
download | mupdf-d914e3415af1c9c7d8644dfa50fdcf9a79cc01d5.tar.xz |
Make blendmode opaque.
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/mupdf.h | 2 | ||||
-rw-r--r-- | pdf/pdf_build.c | 10 | ||||
-rw-r--r-- | pdf/pdf_interpret.c | 11 |
3 files changed, 9 insertions, 14 deletions
diff --git a/pdf/mupdf.h b/pdf/mupdf.h index 80942a80..228cd714 100644 --- a/pdf/mupdf.h +++ b/pdf/mupdf.h @@ -591,7 +591,7 @@ struct pdf_gstate_s float rise; /* transparency */ - fz_blendmode blendmode; + int blendmode; pdf_xobject *softmask; fz_matrix softmask_ctm; float softmask_bc[FZ_MAX_COLORS]; diff --git a/pdf/pdf_build.c b/pdf/pdf_build.c index 8c043107..e22b50c9 100644 --- a/pdf/pdf_build.c +++ b/pdf/pdf_build.c @@ -40,7 +40,7 @@ pdf_init_gstate(pdf_gstate *gs, fz_matrix ctm) gs->render = 0; gs->rise = 0; - gs->blendmode = FZ_BLEND_NORMAL; + gs->blendmode = 0; gs->softmask = NULL; gs->softmask_ctm = fz_identity; gs->luminosity = 0; @@ -274,7 +274,7 @@ pdf_begin_group(pdf_csi *csi, fz_rect bbox) gstate->softmask = softmask; } - if (gstate->blendmode != FZ_BLEND_NORMAL) + if (gstate->blendmode) fz_begin_group(csi->dev, bbox, 0, 0, gstate->blendmode, 1); } @@ -283,7 +283,7 @@ pdf_end_group(pdf_csi *csi) { pdf_gstate *gstate = csi->gstate + csi->gtop; - if (gstate->blendmode != FZ_BLEND_NORMAL) + if (gstate->blendmode) fz_end_group(csi->dev); if (gstate->softmask) @@ -316,7 +316,7 @@ pdf_show_image(pdf_csi *csi, fz_pixmap *image) if (image->mask) { /* apply blend group even though we skip the softmask */ - if (gstate->blendmode != FZ_BLEND_NORMAL) + if (gstate->blendmode) fz_begin_group(csi->dev, bbox, 0, 0, gstate->blendmode, 1); fz_clip_image_mask(csi->dev, image->mask, gstate->ctm); } @@ -360,7 +360,7 @@ pdf_show_image(pdf_csi *csi, fz_pixmap *image) if (image->mask) { fz_pop_clip(csi->dev); - if (gstate->blendmode != FZ_BLEND_NORMAL) + if (gstate->blendmode) fz_end_group(csi->dev); } else diff --git a/pdf/pdf_interpret.c b/pdf/pdf_interpret.c index d045d54f..d2f0df1c 100644 --- a/pdf/pdf_interpret.c +++ b/pdf/pdf_interpret.c @@ -218,7 +218,7 @@ pdf_run_xobject(pdf_csi *csi, fz_obj *resources, pdf_xobject *xobj, fz_matrix tr fz_transform_rect(gstate->ctm, xobj->bbox), xobj->isolated, xobj->knockout, gstate->blendmode, gstate->fill.alpha); - gstate->blendmode = FZ_BLEND_NORMAL; + gstate->blendmode = 0; gstate->stroke.alpha = 1; gstate->fill.alpha = 1; } @@ -364,11 +364,7 @@ pdf_run_extgstate(pdf_csi *csi, fz_obj *rdb, fz_obj *extgstate) { if (fz_is_array(val)) val = fz_array_get(val, 0); - - gstate->blendmode = FZ_BLEND_NORMAL; - for (k = 0; fz_blendmode_names[k]; k++) - if (!strcmp(fz_blendmode_names[k], fz_to_name(val))) - gstate->blendmode = k; + gstate->blendmode = fz_find_blendmode(fz_to_name(val)); } else if (!strcmp(s, "SMask")) @@ -1408,8 +1404,7 @@ pdf_run_page_with_usage(pdf_xref *xref, pdf_page *page, fz_device *dev, fz_matri int flags; if (page->transparency) - fz_begin_group(dev, fz_transform_rect(ctm, page->mediabox), - 0, 0, FZ_BLEND_NORMAL, 1); + fz_begin_group(dev, fz_transform_rect(ctm, page->mediabox), 0, 0, 0, 1); csi = pdf_new_csi(xref, dev, ctm, target); error = pdf_run_csi_buffer(csi, page->resources, page->contents); |