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". Eric _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
