Closed dolmen closed 10 years ago
Cairo already is an abstraction for a rendering backend. The intention is that window-*.c includes the platform-specific code, and so we have window-xlib.c that use cairo_xlib, and there could also be a window-quartz.c that uses cairo_quartz, and a window-win32.c that uses cairo_win32. Is there a reason why you'd want another layer of abstraction here?
My idea was a native Win32 GUI backend, not using Cairo. But I'm not yet committing to implement it.
I admit I have zero experience with Cairo but I wonder because I see no Cairo apps on Win32 except a few Gtk+ ones. The Win32 port of Gtk+ is known to have issues, but I don't know how much this is due to Cairo. I may just be FUDding...
Firefox used cairo as its rendering backend for all platforms (including Windows) for quite a while - I don't think there should be problems. If there are, we can address them as they come up - I'm really trying to avoid doing extra work when it might not even be necessary. I'm not particularly tied to cairo, but I'm also not very interested in maintaining my own cross-platform graphics layer if at all possible, because that is quite a lot of effort to do well.
display.h
looks like a good abstraction for a rendering backend. Unfortunately the API currently has a few references to Cairo types. For the best flexibility, Cairo should be just one backend, to allow native ones. Same forrunes.h
.