diff options
author | Michael Vrhel <michael.vrhel@artifex.com> | 2016-10-20 13:53:06 -0700 |
---|---|---|
committer | Michael Vrhel <michael.vrhel@artifex.com> | 2016-11-21 12:41:41 -0800 |
commit | 47294ff5b168d25bfc7db64f51572d64b8ebde91 (patch) | |
tree | d081549375a93e9caa8e0f09b06b5447fc1357ff /base/gdevp14.h | |
parent | c9d8618934ebf682f72dd9b3ebef48b2be535a8d (diff) | |
download | ghostpdl-47294ff5b168d25bfc7db64f51572d64b8ebde91.tar.gz |
Bug 697345 Blend Color Space Support for Separation devices
This is a rather large commit that brings support for transparency
blend color spaces to the separation devices. Previously the
transparency compositor always used CMYK for the blend color space
if the output device was a separation device.
With this commit:
If the blend space is RGB or Gray based, then we now ensure that the
alternate tint transform is not used when we encounter a separation or DeviceN color space.
(assuming we have not run out of spot color space at the target device). Note that
if the any of the spot colors in a DeviceN color space are CMYK process colorants and the
blend space is Gray or RGB, the alternate tint transform IS used.
2) The pdf14 compositor now handles a mixture of additive and subtractive components.
I.e. RGB + spots or Gray + spots.
3) If the blend mode is non white preserving or not separable, then the spot colors
use the normal blend mode while the process colorants use the specified blend mode.
4) In the process there was a bit of code clean up. But much remains to be cleaned.
Diffstat (limited to 'base/gdevp14.h')
-rw-r--r-- | base/gdevp14.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/base/gdevp14.h b/base/gdevp14.h index 0c9b0bb0c..b49bd3fb1 100644 --- a/base/gdevp14.h +++ b/base/gdevp14.h @@ -133,7 +133,7 @@ struct pdf14_buf_s { byte alpha; byte shape; gs_blend_mode_t blend_mode; - + int num_spots; /* helpful when going between Gray+spots, RGB+spots, CMYK+spots */ bool has_alpha_g; bool has_shape; bool has_tags; @@ -146,7 +146,7 @@ struct pdf14_buf_s { int rowstride; int planestride; - int n_chan; /* number of pixel planes including alpha */ + int n_chan; /* number of pixel planes including alpha */ int n_planes; /* total number of planes including alpha, shape, alpha_g */ byte *data; byte *transfer_fn; @@ -229,7 +229,8 @@ typedef struct pdf14_device_s { bool blendspot; gx_color_index drawn_comps; /* Used for overprinting. Passed from overprint compositor */ gx_device * pclist_device; - bool free_devicen; /* Used to avoid freeing a deviceN parameter from target clist device */ + bool free_devicen; /* Used to avoid freeing a deviceN parameter from target clist device */ + bool sep_device; const gx_color_map_procs *(*save_get_cmap_procs)(const gs_gstate *, const gx_device *); gx_device_color_info saved_target_color_info; |