PS/PDF API Change Proposal: (Re: [cairo] Semantics of transparent objects)

Bill Spitzak spitzak at
Thu Jan 19 12:37:58 PST 2006

I'm not sure what happened to my suggestion, but it still sounds like it 
is relevant. I'll try to write it again in a simpler way:

For most users the only visible result of my suggestion is that CLEAR 
draws opaque white on the PostScript device, thus the donut example will 
produce the desired output.

This is done by defining the PostScript surface as containing the 
composite of whatever you have drawn over opaque white. This is done by 
replacing all the compositing math with these substitutions:

1. Whenever the alpha of the destination is wanted, 1 is substituted.

2. When a color,alpha pair of c,a is written to the desitnation, instead 
the value c+1-a is written, and there is no need to store the a.

I feel that on a windowing system, drawing CLEAR should produce an 
actual hole through the window through which you can see lower windows. 
If this is not possible then the windowing system does NOT support alpha 
and should not pretend that it does. It should instead act like the 
printer: a blank surface is white, and the alpha of the destination is 1 
at all times.

I agree with other posters here that anybody relying on intersection 
with destination alpha will use a temporary surface and then will OVER 
or copy the result to the destination. Any useful drawing that could not 
be achieved by rearranging the order of drawing requires such 
intermediate surfaces, so supporting destination alpha for any surfaces 
other than temporary ones and ones where the hardware actually uses the 
alpha, is not needed and is a waste of time.

More information about the cairo mailing list