diff options
author | Robin Watts <robin.watts@artifex.com> | 2017-07-07 14:27:33 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2017-09-08 17:46:50 +0100 |
commit | a7f36241cba4d1807ab4664201aa0975755d6772 (patch) | |
tree | 6a15ab1b47af54d9f733915a20c0f609b07bc72f /source/fitz/colorspace-imp.h | |
parent | d4afa7b72e0b7d774250f13c3c36d04a5e1415d0 (diff) | |
download | mupdf-a7f36241cba4d1807ab4664201aa0975755d6772.tar.xz |
Update draw device to cope with spots.
If draw device is passed a pixmap with disabled separations, it
may have to push an extra group at the top to allow for the
actual rendering to properly happen in cmyk+spots, and then get
folded down at the end.
This pushing cannot happen at create time, due to it being
dependent on the defualt_cs settings. Accordingly, we push it
(just once) on the first drawing operation.
This means we need to be able to convert from "colorspace + set
of spots" to "different colorspace + different set of spots".
This in turn means we need to be able to drive lcms slightly
differently (to tell it whether to copy the spots unchanged
or not), so we have to amend the CMS interface code a bit for
that.
Currently we lack plotters to properly cope with plotting
images and shades with spots, so this will give a warning and
do nothing. To be filled in in future commits.
Ensure fz_get_icc_link accepts NULL to mean default color params.
Incorporates fixes from Michel Vrhel:
With transparency groups we can have RGB + spot pixmaps. When
drawing into those we need a mixture of colorant polarity. Ensure
that fz_convert_separation_colors takes account of this.
Fix C1 of Altona_Technical_1v1_x3.pdf (allow for output intent in
fz_clone_pixmap_area_with_different_seps).
Diffstat (limited to 'source/fitz/colorspace-imp.h')
-rw-r--r-- | source/fitz/colorspace-imp.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/fitz/colorspace-imp.h b/source/fitz/colorspace-imp.h index c4e94f03..0ca960a0 100644 --- a/source/fitz/colorspace-imp.h +++ b/source/fitz/colorspace-imp.h @@ -15,7 +15,7 @@ int fz_cmm_avoid_white_fix_flag(fz_context *ctx); void fz_cmm_transform_pixmap(fz_context *ctx, fz_icclink *link, fz_pixmap *dst, fz_pixmap *src); void fz_cmm_transform_color(fz_context *ctx, fz_icclink *link, unsigned short *dst, const unsigned short *src); -void fz_cmm_init_link(fz_context *ctx, fz_icclink *link, const fz_color_params *rend, int cmm_flags, int num_bytes, int extras, const fz_iccprofile *src, const fz_iccprofile *prf, const fz_iccprofile *des); +void fz_cmm_init_link(fz_context *ctx, fz_icclink *link, const fz_iccprofile *dst, int dst_extras, const fz_iccprofile *src, int src_extras, const fz_iccprofile *prf, const fz_color_params *rend, int cmm_flags, int num_bytes, int copy_spots); void fz_cmm_fin_link(fz_context *ctx, fz_icclink *link); fz_cmm_instance *fz_cmm_new_instance(fz_context *ctx); void fz_cmm_drop_instance(fz_context *ctx); @@ -51,10 +51,10 @@ struct fz_iccprofile_s struct fz_icclink_s { fz_storable storable; - int num_in; - int num_out; int depth; - int extras; + int src_extras; + int dst_extras; + int copy_spots; int is_identity; void *cmm_handle; }; |