[cairo] Glitz backend: Tesselation bug

David Reveman c99drn at cs.umu.se
Wed Dec 29 09:39:20 PST 2004


On Wed, 2004-12-29 at 17:35 +0100, Stefan Krause wrote:
> The attached source code shows a bug in the glitz backend (at least I 
> think it's a bug). Rendering is OK for cairo with X11 backend. The bug 
> is that the rounded rectangle (code from cairo-demo) drawn with alpha 
> may show artefacts for certain angles of rotation. A reason might be 
> that a triangle of the tessellated shape is drawn twice causing the 
> darker triangle in the shape. The source code shows a dark red triangle 
> in the upper right part and a lighter (correct) drawn shape in other 
> part of the screen.
> Glitz and cairo are current cvs builds. The system is a SuSE 9.2 with 
> 6629 NVidia drivers. To compile the source please use:
> g++ -c `pkg-config --cflags glitz glitz-glx cairo` -L/usr/X11R6/lib/ 
> glitzBug.cpp
> g++ -o glitzBug glitzBug.o `pkg-config --libs cairo glitz glitz-glx` 
> -L/usr/X11R6/lib/ -lXext -lX11 -lm

I'm very aware of this problem. The current glitz backend render all
trapezoids directly to the target surface without an intermediate mask.
This is just a temporary solution and a lot of paths will be rendered
incorrectly this way. I've been working on some new trapezoid
acceleration code for glitz and Xgl that produce perfectly anti-aliased
trapezoids. This code should also be used by cairo's glitz backend. I'll
send more info about this to the cairo list later.

The current version of cairo's glitz backend can be considered broken. I
should probably add some notes about this to the BUGS file.

-David




More information about the cairo mailing list