[Top][All Lists]

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

Re: Linux-x86-64 and cairo crash

From: Eric Wasylishen
Subject: Re: Linux-x86-64 and cairo crash
Date: Mon, 12 Sep 2011 16:41:25 -0600

On 2011-09-12, at 3:48 PM, Fred Kiefer wrote:

> 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

Ah, I see. Transparent windows works fine for me with XGCairoSurface now - 
perhaps it was a limitation in cairo that was fixed since then.

btw, I added the test to GSTest that I was meaning to write for a while, for 
testing -[NSWindow setAlphaValue:] and -[NSWindow setBackgroundColor:] for 
colors with an alpha < 1. It's called "Transparency-test".


reply via email to

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