summaryrefslogtreecommitdiff
path: root/base/gdevp14.h
diff options
context:
space:
mode:
authorMichael Vrhel <michael.vrhel@artifex.com>2016-10-20 13:53:06 -0700
committerMichael Vrhel <michael.vrhel@artifex.com>2016-11-21 12:41:41 -0800
commit47294ff5b168d25bfc7db64f51572d64b8ebde91 (patch)
treed081549375a93e9caa8e0f09b06b5447fc1357ff /base/gdevp14.h
parentc9d8618934ebf682f72dd9b3ebef48b2be535a8d (diff)
downloadghostpdl-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.h7
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;