diff options
author | Ray Johnston <ray.johnston@artifex.com> | 2017-03-28 09:22:23 -0700 |
---|---|---|
committer | Ray Johnston <ray.johnston@artifex.com> | 2017-04-21 08:10:46 -0700 |
commit | 5fa7596d8d467e98fbc069d11b7a3769f7d024f0 (patch) | |
tree | 141fd9b89b6951b4e04511fe139ef30d5a6b9eea /base/gxpcolor.h | |
parent | 35a5977484afecae01afc92f5018709feba6bc91 (diff) | |
download | ghostpdl-5fa7596d8d467e98fbc069d11b7a3769f7d024f0.tar.gz |
More fixes for tag plane problems.
tests_private/comparefiles/Altona_Technical_v20_x4.pdf Page 7 had a
problem in blending when nos_knockout was true that ignored the tag.
This also showed up cases where the alt_dev_color was not updated with
the tag (e.g. tests_private/comparefiles/0000728-simpleNG.pdf).
Another difference that tests_private/comparefiles/Bug689761.pdf shows
is that "gsave fill grestore stroke" reverts the dev_color with grestore,
but doesn't change the dev->graphics_type_tag. Keep the tag in the
dev_color structure so that we know if the dev_color needs unset.
Fix the ensure_tag_is_set inline function to make sure BOTH the device's
graphics_type_tag AND the dev_color.tag are set correctly.
We need to write and read the pattern tag plane for raster patterns with
transparency. Seen with tests_private/comparefiles/Bug689422.pdf
Lastly, the ensure_tag_is_set in gs_shfill needs to happen before the
remap_color (since it may unset the dev_color if the tag was different).
Diffstat (limited to 'base/gxpcolor.h')
-rw-r--r-- | base/gxpcolor.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/base/gxpcolor.h b/base/gxpcolor.h index 8e4b2077f..248e70383 100644 --- a/base/gxpcolor.h +++ b/base/gxpcolor.h @@ -168,6 +168,7 @@ struct gx_pattern_trans_s { int planestride; int n_chan; /* number of pixel planes including alpha */ bool has_shape; /* extra plane inserted */ + bool has_tags; /* and yet another plane for the tag */ int width; /* Complete plane width/height; rect may be a subset of this */ int height; const pdf14_nonseparable_blending_procs_t *blending_procs; |