cairo/ROADMAP

182 lines
6.6 KiB
Text

This is the cairo roadmap.
Everything here is subject to change, but it is hoped that all of it
will be useful. If you want to influence, please feel free to get
involved with cairo (see http://cairographics.org ).
The intent is for this to be a living document. We want both the users
of cairo, (GTK+, GNOME, Mozilla, Mono, etc. etc.) to let us know
features they need and dates by which they are needed so that we can
use those to guide our plans.
Additionally, people who are actively developing cairo itself should
regularly update this document to reflect their current plans. If you
don't want to see a particular release happen without some essential
feature, then put that feature on the list and put your name next to
it to indicate you are working on it.
Targets
=======
GTK+ 2.10 - http://www.gtk.org/plan/2.10/
------------------------------------------
The 2.10 release is scheduled for May 2006, (to be in time for GNOME 2.16).
Satisfying GTK+ 2.10 well requires releasing cairo 1.2 with good
printing support, (good PS/PDF output, per-page sizing and layout,
etc.) sometime in April 2006.
Firefox 3.0 - http://www.mozilla.org/projects/firefox/roadmap.html
------------------------------------------------------------------
Firefox 3 (scheduled for early 2007?) is the first release expected to
use cairo for all rendering. In the meantime, development builds using
cairo are available
Satisfying firefox 3 well requiring releasing new versions of cairo
before November 2006 (or earlier) that incorporate the patches coming
from mozilla, (device offset, push/pop_group), and much-improved
performance.
Themes and Schedules
====================
cairo-1.2 (April 2006): Better printing
- Supported PS/PDF output
- New, printing-oriented API
- Mozilla patches (device offset, push/pop_group)
cairo-1.4 (October 2006): Better performance
- New tessellator
- New rasterization
- Finer-grained fallbacks for PS/PDF
cairo 1.2.0 essential features
We don't expect to release without these being complete.
========================================================
✓PDF backend
✓1. Mark PDF backend as supported
✓a. Incorporate into test suite
✓b. Correct output for the entire test suite
✓2. Reasonable, native output for common uses
✓a. Switch to using cairo_paginated_surface_t
✓b. Opaque text and images are all native
✓c. Translucent objects (using OVER) are also native
✓d. Text output uses PDF font features (type 3)
Bug fixes with API implications
cairo_{ps,pdf}_surface_set_dpi have no effect (replace with cairo_surface_set_fallback_resolution)
✓ cairo_set_line_width semantics (that's not a bug, it's a feature)
Bug fixes (For each XXXX, see: https://bugs.freedesktop.org/show_bug.cgi?id=XXXX )
4630 Fonts too large when drawing to image surface while printing
4863 stroking problems with wide dashed lines
FC_GLOBAL_ADVANCE (http://lists.freedesktop.org/archives/cairo/2005-August/004893.html)
✓4705 crash at XRenderAddGlyphs
_transform_glyph_bitmap http://lists.freedesktop.org/archives/cairo/2005-October/005564.html
6759 fontconfig option AntiAlias doesn't work in cairo 1.1.2
SVG/PS/PDF emit_glyph functions need to support bitmapped glyphs
Fix memory leaks
1. Ensure 'make check-valgrind' passes with no leaks
Performance improvements
✓1. Speed up glyph measurement (cache rewrite)
2. Speed up gradient computations
✓a. Better software gradients
b. Use X server gradients when available
cairo 1.1.6 snapshot includes everything below here
---------------------------------------------------
✓Printing-oriented API (PDF)
✓1. Per-page size settings
✓Mozilla needs
✓1. Device-offset rework
✓2. Push/pop_group
cairo 1.1.4 snapshot includes everything below here (and cairo 1.1.2 some of these)
-----------------------------------------------------------------------------------
✓Printing-oriented API (PostScript)
✓1. Per-page settings (paper size, layout, anything else?)
✓2. Document metadata
✓PS backend
✓1. Mark PS backend as supported:
✓a. Incorporate into test suite
✓b. Correct output for the entire test suite
✓2. Reasonable, native output for common uses
✓a. Switch to using cairo_paginated_surface_t
✓b. Opaque text and images are all native
✓c. Text output uses PostScript font features
✓Pango needs
✓5496 Add getters for cairo_scaled_font_t
✓5495 Need cairo_scaled_font_text_extents
✓SVG backend
✓1. Add experimental SVG backend
✓2. Incorporate into test suite
cairo 1.2.0 desired features
If these aren't ready, they won't be in the release.
======================================================
Win32 backend
✓1. Incorporate into test suite
2. Correct output for the entire suite
a. self-copy
b. trap-clip
[There is some mailing-list discussion about possible fixes
for these.]
Mozilla patches
1. Misc compilation fixes for pixman (submitted upstream)
2. mac compilation fix for cairo-atsui-font.c for 10.2 SDK (maybe should
be upstream?)
3. Make mark_dirty() reset a surface's clip, so that we can call it
when we RestoreDC() after native win32 drawing (submitted upstream)
4. Rework win32 surface clip and extents handling for correctness
(submitted upstream)
5. Add GdiFlush() calls before each image surface get
(Submitted upstream: https://bugs.freedesktop.org/show_bug.cgi?id=5845)
Bug fixes
2. Fix some expected failures (XFAIL) in the test suite
a. a8-mask
✓b. clip-all
c. filter-nearest-offset
d. pixman-rotate
e. extend-reflect
New API
cairo_arc_to
see http://lists.freedesktop.org/archives/cairo/2005-August/004801.html
or see arc_to branch in bedhad's repository
Performance improvements
1. Cull and trim trapezoids outside clip region bounds
2. Generate more large pixel-aligned, rectangular trapezoids
Longer-term desired stuff for cairo (not scheduled for any particular release)
==============================================================================
PS/PDF improvements
1. Make image fallbacks finer-grained than a whole page
2. Ensure that PDF text output is "selectable"
Quartz backend (maintainer needed!)
1. Mark Quartz backend as supported:
a. Incorporate into test suite
b. Correct output for the entire suite
SVG backend
1. Correct output for the entire test suite
Performance improvements
1. New tessellator (more robust and faster)
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].
b. text-rotate