Make a very preliminary attempt at 1.0.2, 1.2.0, and 1.4.0 roadmaps.

This commit is contained in:
Carl Worth 2005-09-02 16:17:48 +00:00
parent 7d93d26e1e
commit 5b5eecc2e1
2 changed files with 85 additions and 75 deletions

View file

@ -1,3 +1,8 @@
2005-09-02 Carl Worth <cworth@cworth.org>
* ROADMAP: Make a very preliminary attempt at 1.0.2, 1.2.0, and
1.4.0 roadmaps.
2005-09-02 Carl Worth <cworth@cworth.org>
* doc/public/tmpl/cairo-version.sgml: Add description of cairo's

155
ROADMAP
View file

@ -1,99 +1,104 @@
cairo 1.0 release requirements
==============================
Implementation work
-------------------
✓I1. Fix clipping to be sane
Status: Done (in cairo 0.9.0).
cairo 1.0.2 required fixes (Schedule unknown)
=============================================
[Need to look through bugzilla, particularly at new bugs filed since
the 1.0.0 release]
✓I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t)
Status: Done (to some extent) (in cairo 0.5.2)
cairo 1.2.0 desired features (Scheduled for 2005-11-01)
=======================================================
A. PS backend
----------
1. Mark PS backend as supported:
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.
a. Incorporate into test suite
✓I3. Add support for sub-pixel (ARGB) rendering of text.
Status: Done (in cairo 0.6.0).
b. Correct output for the entire test suite
✓I4. Fix the cache lock deadlocking problems.
Status: Done (in cairo 0.9.2)
2. Image fallbacks at finer-than-whole-page granularity
✓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.
Status: Done. 5 XFAIL test remain, but 4 of those have results
that are acceptable. The only with with completely broken
output (a8-mask) only happens with A8 image surface masks with
weird padding, (so it is easy to avoid).
B. PDF backend
-----------
1. Mark PDF backend as supported
API additions (more detail in TODO file)
----------------------------------------
✓A7. cairo_surface_mark_dirty and cairo_surface_flush
Status: Done (in cairo 0.9.0).
a. Incorporate into test suite
✓A12. cairo_xlib_surface_set_drawable
Status: Done (in cairo 0.6.0).
b. Correct output for the entire test suite (use image
fallbacks as necessary, meta-surface?):
Performance work
----------------
✓ Lots of performance work was done, such as the MMX-ification of
pixman, the addition of cairo-benchmarks, and several 2x improvements
for tests within cairo-benchamarks. Many thanks to Billy Biggs!
a. Gradients with more than two stops
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)
b. All of the cairo_operator_t modes
c. Gradients with transparency
d. Repeating surface patterns
e. cairo_mask
C. Win32 backend
-------------
1. Incorporate into test suite
2. Correct output for the entire suite
D. Bug fixes
---------
1. Fix dashed splines.
2. Fix some expected failures (XFAIL) in the test suite
a. a8-mask
b. clip-all
c. filter-nearest-offset
d. pixman-rotate
E. API Additions
-------------
1. cairo_begin/end/get_group
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)
F. Performance improvements
------------------------
1. Cull and trim trapezoids outside clip region bounds
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.
2. Generate more large pixel-aligned, rectangular trapezoids
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.
✓3. Speed up glyph measurement (cache rewrite)
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:
G. SVG backend
-----------
1. Add experimental SVG backend
* Gradients with more than two stops
cairo 1.4.0 desired features (Schedule unknown)
===============================================
A. Quartz backend (maintainer needed!)
-----------------------------------
1. Mark Quartz backend as supported:
* All of the cairo_operator_t modes
a. Incorporate into test suite
* Gradient with transparency
b. Correct output for the entire suite
* Repeating surface patterns
B. SVG backend
-----------
1. Mark SVG backend as supported
* cairo_mask
a. Incorporate into test suite
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].
b. Correct output for the entire suite
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)
B. Performance improvements
------------------------
1. New tessellator (more robust and faster)
P3. Glyph measurement needs to be sped up.
Status: keithp and cworth planned this all out. keithp is
working on this.
C. Bug fixes
---------
1. Fix all expected failures (XFAIL) in the test suite
a. self-intersecting
AKA. https://bugs.freedesktop.org/show_bug.cgi?id=3752
Fix depends on [A1].