Thank you for asking about the cairo backend. Sometimes it feels like I am the only one interested in this and on the even worse days I am quite happy about that :-)
There has been a bit of progress for this backend this year, but much less than I expected. We are now able to use the cairo functionality to produce PS output, but this still does not work completely and I have postponed the addition of PDF output until this is fixed. Most of the composite operators now work, but highlighting is still not implemented and scrolling still doesn't work in all cases. There are two issues with scrolling, one is that cairo seems unable to handle overlapping copying. This may be worked around by using an intermediate surface. Perhaps it would even be sufficient to use a group here. Anybody with some cairo knowledge willing to test this? The other problem is worse, as it shows that our composite operation is not correct. Scrolling in flipped views doesn't work at all. Fro me this is the biggest show stopper for the cairo backend and your work around by redrawing the whole scrollview is just this, a workaround. Having a cairo backend for MS Windows would surely be nice, but is not worth the effort until the x11 backend is working correctly. Splitting up the x11 part of the backend to better support cairo is nt needed in my view. I don't see anything that we could gain by this split. The buffer we use for art and cairo is something we added later on and which could be simple removed again by changing the GSSetDevice::: on CairoContext. But when using an X window directly here we loose all the alpha handling. There must be a way to get an X window where cairo does proper alpha processing, but I never found out how. All this problems (and the others that I did forget to mention) should not stop you from testing the cairo backend from time to time and if possible even contribute code to it. Cheers, Fred Yen-Ju Chen wrote: > I am curious how experimental the cairo backend is now ? > The last time I tried, it works mostly fine, except the scrolling problem, > which can be worked around by always scrolling a full view instead of > a fraction of view, > because it will trigger a full redraw than copying one fraction of > view to another place. > Is there any other known show-stopper bug ? > > Another thing I am wondering is that currently, > cairo backend try to do whatever art backend do. > So here is the combination of backend: > > x11+xlib > x11+art > x11+cairo > win32+winlib > > Considering cairo is a cross-platform solution, > it can theoretically do > > x11+cairo > win32+cairo > > I wonder whether it would be easier to have a stand-alone x11 server > for cairo, like this: > > cairo_x11 + cairo_render, and in the unknown future > cairo_win32 + cairo_render (I don't really care about this one :). > > In that way, cairo_x11 + cairo_render can take advantage of cairo > without worrying breaking art backend. > For example, I remember cairo currently write image into a buffer > shared with art backend. > If there is a cairo_x11, it can by-pass this buffer and draw straight > onto window, > which may (or may not) make things easier. > To me, cairo backend and art backend are roughly equivalent. > x11+xlib is for old or slow machine, probably also remote one. > If a machine can run x11+art, I think it can also run > cairo_x11+cairo_render. > So once cairo backend is stable, art backend is not useful anymore. > Therefore, it makes sense to me to have a window server (cairo_x11) > exclusively for cairo backend (cairo_render), > if it helps the adaptation of cairo backend for regular users. _______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
