summaryrefslogtreecommitdiff
path: root/base/gxclrect.c
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2020-11-20 15:34:54 +0000
committerRobin Watts <Robin.Watts@artifex.com>2020-11-20 15:38:26 +0000
commite2e50a951f3f06c48d908ea8f095e2d7ae2ee5e9 (patch)
tree75ae8f085101a2cea7a51ae873d352656b7ccbaf /base/gxclrect.c
parent86ed012049f58ef01d02c18b8f16c6f343be30db (diff)
downloadghostpdl-e2e50a951f3f06c48d908ea8f095e2d7ae2ee5e9.tar.gz
Bug 703161: Fix unknown error when interpolating transparent imagemasks.
Patch from Alex Cherepanov. Add a dev_spec_op to check for whether copy_alpha is disabled or not. Clist devices with transparency disable it. Use this to bolster the decision made in mask_suitable_for_interpolation.
Diffstat (limited to 'base/gxclrect.c')
-rw-r--r--base/gxclrect.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/base/gxclrect.c b/base/gxclrect.c
index 6f71b61af..d0f81ac4e 100644
--- a/base/gxclrect.c
+++ b/base/gxclrect.c
@@ -599,6 +599,10 @@ clist_dev_spec_op(gx_device *pdev, int dev_spec_op, void *data, int size)
return 1;
if (dev_spec_op == gxdso_pattern_shfill_doesnt_need_path)
return 1;
+ if (dev_spec_op == gxdso_copy_alpha_disabled) {
+ gx_device_clist_writer * const cdev = &((gx_device_clist *)pdev)->writer;
+ return (cdev->disable_mask & clist_disable_copy_alpha) != 0;
+ }
if (dev_spec_op == gxdso_supports_devn
|| dev_spec_op == gxdso_skip_icc_component_validation) {
cmm_dev_profile_t *dev_profile;