diff options
author | Robin Watts <robin.watts@artifex.com> | 2012-04-27 18:46:27 +0100 |
---|---|---|
committer | Michael Vrhel <michael.vrhel@artifex.com> | 2012-04-29 08:49:49 -0700 |
commit | 60640aeb33b18f9a9fcd76fc6f1083d7c7635f24 (patch) | |
tree | 33a57c250203465c9e754ef9ddba901cac045030 /gs/base/gxgetbit.h | |
parent | dd09a0706ab09a54f5fbb05c63420c86375b45bf (diff) |
* Change of the tiffsep and psdcmyk device to planar devices.
This change in these devices was made to remove the 64 bit limitation of
our existing color encoding which limits us to 8 colorants without
compressed color encoding. The motivation for this work is that even
with compressed color encoding we were starting
to encounter files with transparency in particular that exceeded the
capabilities of encoding, leading to dropped colors. With this fix, we
encode through the clist the DeviceN color values. The buffers for the
devices are maintained as planar buffers and fills occur with the high level
device colors.
Support was added to handle the devn color type through the shading code. The old
code would have supported only 8 colorants in a shading.
Support was also added to the transparency code to enable the use of the put_image
procedure which for the planar device saves quite a bit of time since we can do the
copy_planes proc directly from the pdf14 planar buffer to the planar memory device buffer.
The pdf14 device also had to support fill_rectangle_hl_color.
Changes were also made to the pattern tiling code so that we avoid any planar to chunky and
back to planar conversions. These were being done to handle ROPs. Even when there were
not any ROPs to perform we were going through strip_tile_rop operations since the
gx_default_strip_tile_rectangle did not support planar to planar. That support is added
with this commit.
Support had to be added to the overprint compositor to support the new color type with
fill_rectangle_hl_color.
Support had to be added to the clist for fill_rectangle_hl_color. This required changes
on both the writing and reading side. It is possible that the amount of data written
for these commands could be reduced and that is commented in the code.
Support also had to be added to the clip device and the mask_clip device as well
for uncolored patterns. Also the tile clip device required support and the transparency device
required support for copy_planes. This last function needs to be optimized.
Both of the separation devices (tiffsep and psdcmyk) that we currently have are updated to
support this method. There is an #if option in each device file to return the
code back to the old chunky format.
A new device procedure for handling strip tiling of masks with devn colors had
to be added. Functionality was only required for the mem planar and clist devices.
Also, it was found that the tiffsep and psdcmyk devices were maintaining separations
(spot colors) across pages. That is if page 1 had a spot color, subsequent pages
created a separation for that spot
even if those pages did not contain it. This was fixed so that separations for a page
are only created for the spots that occur on that page.
A fix was also made to ensure that we had proper handling for the None colorants when
they are part of the DeviceN color space.
Diffstat (limited to 'gs/base/gxgetbit.h')
-rw-r--r-- | gs/base/gxgetbit.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gs/base/gxgetbit.h b/gs/base/gxgetbit.h index 41b2a841d..d2b3b5fa2 100644 --- a/gs/base/gxgetbit.h +++ b/gs/base/gxgetbit.h @@ -41,7 +41,7 @@ typedef gx_bitmap_format_t gs_get_bits_options_t; */ struct gs_get_bits_params_s { gs_get_bits_options_t options; - byte *data[32]; + byte *data[GS_CLIENT_COLOR_MAX_COMPONENTS]; int x_offset; /* in returned data */ int original_y; uint raster; |