[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