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.

This commit is contained in:
Carl Worth 2005-08-18 17:11:42 +00:00
parent 16f66dc314
commit 8f93bcfa47
2 changed files with 61 additions and 22 deletions

View file

@ -1,3 +1,13 @@
2005-08-18 Carl Worth <cworth@cworth.org>
* 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 <otaylor@redhat.com>
* test/text-pattern.c: Add a test for bug #2333 (Tim Rowley)

73
ROADMAP
View file

@ -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].