[cairo] Mozilla on Cairo

Robert O'Callahan rocallahan at novell.com
Tue May 10 18:04:07 PDT 2005


On Tue, 2005-05-10 at 16:00 -0400, Carl Worth wrote:
> On Fri, 22 Apr 2005 08:01:16 -0400, Owen Taylor wrote:
> > >       Also, this page doesn't really show it, but we are running into
> > > the problem of antialiased fills causing artifacts where two shapes
> > > share a non-pixel-aligned edge. I really want to add a mode to cairo_t
> > > that turns antialiasing off. What are the chances that that would be
> > > accepted?
> 
> I've mentioned before that adding full-scene antialiasing one way or
> another might be the right way to solve this problem in the most
> general case.

But FSAA is a combination of "turn off pixel-coverage antialiasing" and
"render to a larger buffer and scale down with pixel averaging". So the
first step to supporting FSAA is to be able to turn off the coverage
antialiasing. Then, when resources permit, we can add supersampling.

> But, if your scenes are strictly 2.5D, (that is, each object exists in
> a plane at a constant Z value), then you might likely be able to
> achieve seam-free rendering by using the CAIRO_OPERATOR_SATURATE
> operator and rendering your objects in a similar order as is done for
> OpenGL.

Hmm. Can you explain further, or give me a URL? (The cairo docs don't
describe the operators...) But I *suspect* this isn't going to work
because...

<div style="background:black; width:50px; height:7.5px;"></div>
<div style="background:black; width:50px; height:7.5px;"></div>

Technically the second div is above the first, but the author's still
going to expect continuous black. In this case we could relatively
easily determine that they don't overlap so we should put them all in
the same layer, but in general we do care about edges shared by shapes
at different Z values.

Also, it looks like glitz doesn't accelerate CAIRO_OPERATOR_SATURATE.

Rob




More information about the cairo mailing list