discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Linux-x86-64 and cairo crash


From: Fred Kiefer
Subject: Re: Linux-x86-64 and cairo crash
Date: Mon, 12 Sep 2011 23:48:01 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.22) Gecko/20110907 SUSE/3.1.14 Thunderbird/3.1.14

On 12.09.2011 21:17, Eric Wasylishen wrote:
Based on what Fred said, it looks like the design of XGCairoXImageSurface is 
flawed and won't work on 16-bit displays. (But did it work for you in the past?)

One thing you could try is switch to XGCairoSurface. In CairoContext.m, just 
adjust the comments so you have:
#    define _CAIRO_SURFACE_CLASSNAME XGCairoSurface

This will create a cairo xlib surface for the window buffer, instead of a cairo 
image surface. Interestingly enough it seems to work for me - I don't think it 
worked a few months ago.

as an aside, I would like to switch to XGCairoSurface by default at some point, 
rather than fixing XGCairoXImageSurface. It would have a number of benefits, 
like:
- enables subpixel antialising for fonts
- removes the need for using shared memory for the window buffer for good 
performance (from what I understand, cairo will automatically use shm to 
transfer bitmaps to the x server when needed).
- it may allow hardware acceleration for some operations?

If I remember correctly the reason we switched to XGCairoXImageSurface was that with XGCairoSurface we could not get transparent windows. Yen-Ju of the Etoile project suggested to use XGCairoXImageSurface and this has worked remarkably well for almost five years now. If transparency works now, even on old 24 bit displays, with XGCairoSurface then we should switch back to that. Otherwise we need to figure out a better way to determine which surface to use.

Fred



reply via email to

[Prev in Thread] Current Thread [Next in Thread]