cairo 1.0 release requirements ============================== Implementation work ------------------- ✓I1. Fix clipping to be sane Status: Done (in cairo 0.9.0). ✓I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t) Status: Done (to some extent) (in cairo 0.5.2) We do have PDF output now, and "real" PostScript output on a per-page basis when the capabilities of the PostScript imaging model aren't exceeded. There are a few parts of these backend that aren't complete, but that will have to wait for post-1.0 I'm afraid. ✓I3. Add support for sub-pixel (ARGB) rendering of text. Status: Done (in cairo 0.6.0). ✓I4. Fix the cache lock deadlocking problems. Status: Done (in cairo 0.9.2) I6. Fix all expected failures (XFAIL) in the test suite. Either there's a bug that needs to be fixed, or there are illegitimate tests that should be removed. API additions (more detail in TODO file) ---------------------------------------- ✓A7. cairo_surface_mark_dirty and cairo_surface_flush Status: Done (in cairo 0.9.0). ✓A12. cairo_xlib_surface_set_drawable Status: Done (in cairo 0.6.0). Performance work ---------------- P2. Generate better trapezoids to go easier on the rasterizer Difficulty: moderate to hard Status: cworth drafted a plan to the list. vektor is looking at this, (or other similarly useful performance optimizations) P3. Glyph measurement needs to be sped up. Status: keithp and cworth planned this all out. keithp is working on this. Things that have been dropped from the 1.0 roadmap ================================================== A3. Add cairo_begin/end/get_group Difficulty: easy to hard (depending on how sophisticated an implementation is acceptable, and whether the cairo_meta_surface_t mentioned in [I2] is done) Status: cworth has a posted a preliminary patch, and keithp, krh, and otaylor answered all the tough questions it raised. There's not much work left to finish this one. I5. Finish the workaround for Render's overlapping source/dest bug (Copy the source as needed) The most important part of this was to workaround when doing a straight copy, (eg. for scrolling), and that much is done. The remaining case is things like overlapping OVER of a surface with itself, which doesn't seem useful enough to be a priority at this point. I7. Fine-grained PostScript fallbacks (cairo_meta_surface_t) Difficulty: Moderate to hard Status: cairo_meta_surface provides most of the mechanics. From here on out its mostly a matter of refining the fallbacks to work on a finer-grained basis than the current all-or-nothing-per-page approach. I8. Finish implementing the PDF/PostScript backends: Difficulty: Moderate to hard Status: Most everything is there, but there are few things in cairo that these backends don't yet implement: * Gradients with more than two stops * All of the cairo_operator_t modes * Gradient with transparency * Repeating surface patterns * cairo_mask Some of these could be handled by fallbacks, either as a stop-gap measuer, or permanently. But that will also depend on finishing up [I7].