diff --git a/ChangeLog b/ChangeLog index 298ca0c19..db8e97a8f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-08-18 Carl Worth + + * ROADMAP: Update the roadmap. Remove difficulty rating from + completed tasks. Note that PostScript/PDF is (grudgingly) done as + far as 1.0 is concerned, but there is more work to completing this + that is slipped beyond 1.0. Note that the deadlock bug is fixed as + of 0.9.2. Update who is working on what for performance. Add some + new detail for post-1.0 PostScript/PDF work. Slip the overlapping + source/dest Render workaround past 1.0. + 2005-08-18 Owen Taylor * test/text-pattern.c: Add a test for bug #2333 (Tim Rowley) diff --git a/ROADMAP b/ROADMAP index 6207030f2..ef9d01ab1 100644 --- a/ROADMAP +++ b/ROADMAP @@ -3,28 +3,22 @@ cairo 1.0 release requirements Implementation work ------------------- ✓I1. Fix clipping to be sane - Dificulty: moderate Status: Done (in cairo 0.9.0). - I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t) - Difficulty: hard - Status: krh has committed cairo_meta_surface_t and a preliminary - version of cairo_ps_surface_t that uses it. +✓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. - Difficulty: Hard - Status: The cache code was ugly enough that I ended up doing a - major rewrite rather than just reviewing the - locking. The upside is that the rewrite should also - add the missing metrics caches which will fix some - performance problems with text measurement. Almost - done now. - - I5. Finish the workaround for Render's overlapping source/dest bug - (Copy the source as needed) +✓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 @@ -33,22 +27,22 @@ Implementation work API additions (more detail in TODO file) ---------------------------------------- ✓A7. cairo_surface_mark_dirty and cairo_surface_flush - Difficulty: trivial to add API, moderate to actually optimize - based on it Status: Done (in cairo 0.9.0). ✓A12. cairo_xlib_surface_set_drawable - Difficulty: Easy 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 + 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: Now planned as part of I4 above ("cache lock deadlock") + Status: keithp and cworth planned this all out. keithp is + working on this. Things that have been dropped from the 1.0 roadmap ================================================== @@ -56,7 +50,42 @@ Things that have been dropped from the 1.0 roadmap 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].