diff options
author | Ray Johnston <ray.johnston@artifex.com> | 2020-02-11 11:11:47 -0800 |
---|---|---|
committer | Ray Johnston <ray.johnston@artifex.com> | 2020-02-11 11:11:47 -0800 |
commit | ad317d8d436f3ae282597631464313666451747f (patch) | |
tree | 08e4041d89cde8710a46b05f9ba03e40e0c4b3fd /base/gxclip.c | |
parent | 1c6bfa12cccb726974aa1c3ad5c4887600f7331d (diff) | |
download | ghostpdl-ad317d8d436f3ae282597631464313666451747f.tar.gz |
Fix bug 702060: clip_transform_pixel_region was ignoring the 'transpose' flag.
Diffstat (limited to 'base/gxclip.c')
-rw-r--r-- | base/gxclip.c | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/base/gxclip.c b/base/gxclip.c index b8927af38..b0924307a 100644 --- a/base/gxclip.c +++ b/base/gxclip.c @@ -1602,14 +1602,25 @@ clip_transform_pixel_region(gx_device *dev, transform_pixel_region_reason reason /* Single unskewed rectangle - we can use the underlying device direct */ local_data.u.init.clip = &local_clip; local_clip = *data->u.init.clip; - if (local_clip.p.x < cdev->current->xmin) - local_clip.p.x = cdev->current->xmin; - if (local_clip.q.x > cdev->current->xmax) - local_clip.q.x = cdev->current->xmax; - if (local_clip.p.y < cdev->current->ymin) - local_clip.p.y = cdev->current->ymin; - if (local_clip.q.y > cdev->current->ymax) - local_clip.q.y = cdev->current->ymax; + if (cdev->list.transpose) { + if (local_clip.p.x < cdev->current->ymin) + local_clip.p.x = cdev->current->ymin; + if (local_clip.q.x > cdev->current->ymax) + local_clip.q.x = cdev->current->ymax; + if (local_clip.p.y < cdev->current->xmin) + local_clip.p.y = cdev->current->xmin; + if (local_clip.q.y > cdev->current->xmax) + local_clip.q.y = cdev->current->xmax; + } else { + if (local_clip.p.x < cdev->current->xmin) + local_clip.p.x = cdev->current->xmin; + if (local_clip.q.x > cdev->current->xmax) + local_clip.q.x = cdev->current->xmax; + if (local_clip.p.y < cdev->current->ymin) + local_clip.p.y = cdev->current->ymin; + if (local_clip.q.y > cdev->current->ymax) + local_clip.q.y = cdev->current->ymax; + } state->use_default = 0; ret = dev_proc(cdev->target, transform_pixel_region)(cdev->target, reason, &local_data); } else { |