[cairo] Plans for 1.6?

Owen Taylor otaylor at redhat.com
Wed Nov 28 07:49:13 PST 2007

On Tue, 2007-11-27 at 19:59 -0800, Keith Packard wrote:
> On Wed, 2007-11-28 at 00:34 +0000, Peter Clifton wrote:
> > On Tue, 2007-11-27 at 13:13 -0800, Carl Worth wrote:
> > 
> > > EXTEND_PAD definitely. Also, the rest of the "goofy X server visuals"
> > > work, (meaning support for mask-based format compositing in pixman and
> > > probably taking the pseudocolor patch for cairo). Then also fixing
> > > pixman to handle A8 masks with a stride that is not a multiple of 4.
> > 
> > Pseudocolor visuals is something which is blocking some of our user-base
> > with older terminals, and its inclusion would be another major step
> > towards getting this accepted as a drawing library in gEDA. (Electronics
> > CAD). I'm really looking forward to this being in, as I've been trying
> > to push cairo for some time.
> Do you want native drawing to pseudo color? Or do you want the ability
> to paint in a local RGB buffer and then copy to pseudo color? The latter
> seems like it will be a lot faster (Render support on pseudo color
> hardware seems unlikely), and will certainly give better looking results
> as we can even dither if desired.

Though before anybody gets to enthusiastic about dithering, without
dither offset control the results are going to be bad. Say you are
dragging a window across another window and exposing areas of the
underlying window offset from each other by a few pixels. The normal
implementation of dithering would give you streaks as the same dither
pattern appears in each exposed region. 

To fix that you'd need an API addition like
cairo_surface_set_dither_offsets(), which almost certainly doesn't make
sense 10 years after normal people stopped caring about PseudoColor.
Probably the best thing to do would be to choose a *random* dither
offset for each surface, which means that as you expose you get:

 - shifting dither patterns
 - moderately visible seams between exposed areas

But no egregious artifacts.

- Owen

(Other things that won't be good with any reasonable-effort PseudoColor:

 - Antialiased text and lines
 - Large solid color areas unless they happen to fall on a color from
   the color cube

Basically PseudoColor only worked as long as people were designing apps
specifically for it.)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://lists.cairographics.org/archives/cairo/attachments/20071128/80d7c1d1/attachment.pgp 

More information about the cairo mailing list