[cairo] new quartz backend progress

Vladimir Vukicevic vladimirv at gmail.com
Fri Jan 27 15:25:33 PST 2006


Howdy,

I'm in the process of writing a new native CG Quartz backend for use
on OSX.  This is now much easier because the high level operations
(stroke/fill/etc.) are exposed for backends to handle.
Because of Core Graphics limitations, it's not possible provide cairo
fallback for any rendering, except with a bunch of extra setup;
however, most (if not all) cairo operations should be able to be
handled natively through CG. It is possible to provide fallback on
CGBitmapContexts or if the window has an associated AGL context
(because it's then possible to use glReadPixels to read the buffer
data); this is also the only way that a quartz surface can be used as
a source for an operation.

Some status bullets:
- Most operators work; however, CG implements the unbounded operators
differently from cairo (incorrectly, as best I can tell), so those
result in different rendering.
- Stroking, filling, and rendering glyphs with solid colors should work.
- Stroking and filling with linear gradients should also work; a few
more lines and radial gradients will also work.
- Surface patterns do not yet work, but that's next on my todo list.
- Anything other than a solid source for show_glyphs does not work,
also on the todo list.
- Needs a bit of API cleanup; there's one 10.4-only function that I
use that I can probably do without, however I think the minimum OS
version may have to be 10.3.
- Fix naming issues.. quartz2, quartzgl, etc., needs to be resolved :)

I hope to have this ready for submission into CVS in a few days;
however, a patch of the current state of things is attached.

    - Vlad
-------------- next part --------------
A non-text attachment was scrubbed...
Name: quartz2.patch
Type: text/x-patch
Size: 64181 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20060127/e9ababd4/quartz2-0001.bin


More information about the cairo mailing list