mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-31 21:50:14 +01:00
Note that PS and PDF backends are experimental. Note the progress that has been completed so that 1.0 is ready now.
99 lines
3.5 KiB
Text
99 lines
3.5 KiB
Text
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.
|
|
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).
|
|
|
|
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
|
|
----------------
|
|
✓ 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!
|
|
|
|
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].
|
|
|
|
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.
|