[cairo] default rendering engine

Bill Spitzak spitzak at d2.com
Mon Jun 7 10:22:59 PDT 2004


On Friday 04 June 2004 07:31 am, Carl Worth wrote:
> On Mon, 3 May 2004 13:08:39 -0700, Bill Spitzak wrote:
> > Thanks for the info. I suspect now the problem is my Xserver:
>> > name of display:    :0.0
> > version number:    11.0
> > vendor string:    Mandrake Linux (XFree86 4.3, patch level 23mdk)
> > vendor release number:    40300000
> > XFree86 version: 4.3.0
>> > with the Nvidia driver.
>> > For me, this simple change of the cairo-demo/X11/cairo-demo will crash
> > the X server immediatly when you resize the window:
>
> The change you sent definitely does not crash my server (X.org version
> 6.7.0 with the ati driver).
>
> But your patch also modifies the program significantly: It continually
> translates the entire drawing on every expose, (since you're re-using
> the same cairo_t without a save/restore pair). I wonder if the extreme
> coordinates you get that way aren't tickling a bug somewhere. Try the
> following patch which adds the missing save/restore to see if anything
> is different.

You are correct, the save/restore did make the program work. I have also 
proven that I can use a single cairo_t and redirect it to every window in my 
program. Also (possibly a fix for the newest Cairo) I can resize the window 
and cairo draws the entire area, previous versions would clip to the original 
size and I had to destroy/create the cairo_t to fix this.

With the newest Cairo the crashing behavior appears to be different. Before I 
got the image but the first resize would crash the X server. In this new one 
I get black (probably correct behavior because of the transformations), and 
resize does not crash (at least initially), but dragging the window entirely 
off the screen and back on so it redraws does crash the X server like before. 
It is possible the entirely-obscured window crashed it, or it is possible 
that it crashes after N redraws where N is approximatly 100 (in this case it 
does not seem that the 24.8 fixed-point is overflowing, but perhaps a 16.16 
fixed or 16-bit integer value is overflowing) I'm sorry I did not test it 
much beyond that.

-- 
                   ,~,~,~,~ ~ ~ ~ ~
     /\_       _|_========___         Bill Spitzak
 ~~~/\/\\~~~~~~\____________/~~~~~~~~ spitzak at d2.com




More information about the cairo mailing list