diff options
author | Robin Watts <Robin.Watts@artifex.com> | 2011-07-01 18:03:19 +0100 |
---|---|---|
committer | Robin Watts <Robin.Watts@artifex.com> | 2011-07-01 18:03:19 +0100 |
commit | 52d2decab7955e61a605ab44acb88a08eb79b9cb (patch) | |
tree | 1d62f8b561c5f83f536e617d8fb66043f40863ac /gs/base/gxclrect.c | |
parent | e14ea75d716da7ecdef2211a5d60e46deec55b9f (diff) |
Clist change for plane rop operations.
If strip_copy_rop is called with the 'lop_planar' indicator bit set in
the rop, it should encode just a planes worth of data.
The reading side of clists works without change, I believe.
Diffstat (limited to 'gs/base/gxclrect.c')
-rw-r--r-- | gs/base/gxclrect.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gs/base/gxclrect.c b/gs/base/gxclrect.c index 1003957b0..c134d651b 100644 --- a/gs/base/gxclrect.c +++ b/gs/base/gxclrect.c @@ -1260,7 +1260,7 @@ clist_strip_copy_rop(gx_device * dev, re.pcls->lop_enabled = -1; ++cdev->driver_call_nesting; { - if (scolors != 0) { + if (scolors != NULL) { if (scolors[0] == scolors[1]) code = clist_fill_rectangle(dev, rx, re.y, rwidth, re.height, scolors[1]); @@ -1268,9 +1268,14 @@ clist_strip_copy_rop(gx_device * dev, code = clist_copy_mono(dev, row, sourcex, sraster, id, rx, re.y, rwidth, re.height, scolors[0], scolors[1]); - } else + } else if (lop & lop_planar) { + code = clist_copy_plane(dev, row, sourcex, sraster, id, + rx, re.y, rwidth, re.height, + (lop >> lop_planar_shift)); + } else { code = clist_copy_color(dev, row, sourcex, sraster, id, rx, re.y, rwidth, re.height); + } } --cdev->driver_call_nesting; re.pcls->lop_enabled = 1; |