summaryrefslogtreecommitdiff
path: root/demos/csharp
diff options
context:
space:
mode:
authorRobin Watts <Robin.Watts@artifex.com>2020-07-28 17:52:11 +0100
committerRobin Watts <Robin.Watts@artifex.com>2020-07-28 17:58:58 +0100
commitc001ce438ef9fd0171104ac49afa110e39edb03e (patch)
treefbc67c53516a409926b8751b9e6629c725e3a026 /demos/csharp
parent45b122117e937bb36da2ef03ea590c90ebcd2de9 (diff)
downloadghostpdl-c001ce438ef9fd0171104ac49afa110e39edb03e.tar.gz
Bug 702587: Fix alpha buffer issue with fill/stroke operations.
The "alphabits" devices work by an alpha buffer being inserted into the device chain before graphical operations. This intercepts drawing device calls, 'saves' the color, and then converts the call into a fill of a monochrome mask. Only a small 'window' of mask is ever held in memory at once. When the drawing moves out of the range of that window, the window is flushed (conceptually the mask is scaled down, and then that scaled representation is filled with the saved color). Any "stragglers" (i.e. unwritten back bits of mask) are flushed at the end of the graphical operation. When using fill/stroke, the existing code fails to notice the color in use being changed. This means the last 'window' of fill can end up being written in the color intended for 'stroke'. We therefore update the fill/stroke logic to check for the color changing. (We check for 'unflushed data' and 'color has changed').
Diffstat (limited to 'demos/csharp')
0 files changed, 0 insertions, 0 deletions