2007-04-05 16:35:03 -07:00
|
|
|
This file contains a list of some things that have been proposed for
|
|
|
|
|
inclusion in cairo. None of these items have been scheduled for a
|
|
|
|
|
particular release, (see the ROADMAP file next to this TODO file for
|
|
|
|
|
those).
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
If you'd like to see an item on this list get into a particular
|
|
|
|
|
release, let us know that you're planning on working on it, (see
|
|
|
|
|
http://cairographics.org/lists ), and we can move the item to ROADMAP
|
|
|
|
|
with your name on it.
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
Changes that add new API (API changes/removals will not be considered)
|
|
|
|
|
======================================================================
|
|
|
|
|
• Add CAIRO_FILL_RULE_INVERSE_WINDING and CAIRO_FILL_RULE_INVERSE_EVEN_ODD
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Add support for programmatic patterns, (ie. arbitrary gradients)
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Add cairo_arc_to.
|
|
|
|
|
see http://lists.freedesktop.org/archives/cairo/2005-August/004801.html
|
|
|
|
|
or see arc_to branch in bedhad's repository
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Add support for custom caps
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
It would be nice if the user had a mechanism to reliably draw custom
|
|
|
|
|
caps. One approach here would be to provide the coordinates of the
|
|
|
|
|
butt cap faces so that the user can append seamless caps to the
|
|
|
|
|
current path. We may also need to provide the coordinates of the
|
|
|
|
|
faces of every dash as well.
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• cairo_surface_show_page() and cairo_surface_copy_page()
|
|
|
|
|
how_page is a surface operation and should have been there instead of
|
|
|
|
|
cairo_show_page() from the beginning. Same about copy_page().
|
|
|
|
|
Implement the right API now.
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Polling API (cairo_get_serial and cairo_changed)
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
Performance improvements
|
|
|
|
|
========================
|
|
|
|
|
• Add dashing support to the fast-path rectilinear stroking
|
|
|
|
|
code, (will help GTK+ focus rectangle, for example)
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Improve software polygon compositing by doing it in a
|
|
|
|
|
single scanline pass rather than tessellating, rasterizing, then
|
|
|
|
|
compositing the entire polygon.
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Clip trapezoids that are partially outside the clip region
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
Other fixes
|
|
|
|
|
===========
|
|
|
|
|
• Fix/define tolerance for PS/PDF/SVG backends
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Fix CAIRO_EXTEND_REFLECT in pixman and remove the current hack
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Fix disabled show-glyphs-many case in cairo test suite
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Get pixman merged up with X server fb implementation
|
2006-08-18 15:08:58 -07:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Possibly remove pdiff (slows down the test suite with little
|
|
|
|
|
benefit)
|
2005-01-06 08:51:48 +00:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Make font backends separable from their native surfaces
|
2003-11-17 07:04:15 +00:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Fix cairo so that a degenerate matrix draws nothing rather than
|
|
|
|
|
triggering an error state. That is: cairo_scale (cr, 0, 0); should
|
|
|
|
|
not cause an error, (though maybe it shouldn't actually draw
|
|
|
|
|
_nothing_ for painting an infinite source pattern---compute the
|
|
|
|
|
average color for a surface-based source pattern perhaps?).
|
2006-08-18 18:55:52 -04:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• The new tessellator has greatly improved performance, robustness,
|
|
|
|
|
and code readability, but may still suffer from "missed
|
|
|
|
|
intersections" as described here:
|
2006-08-18 18:55:52 -04:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz
|
2006-08-18 18:55:52 -04:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
[Hobby93c] John D. Hobby, Practical Segment Intersection with
|
|
|
|
|
Finite Precision Output, Computation Geometry Theory and
|
|
|
|
|
Applications, 13(4), 1999.
|
2006-08-18 18:55:52 -04:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
We could do multi-pass Bentley-Ottmann or add a tolerance-square
|
|
|
|
|
pass as described by Hobby in the paper above.
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Fix vertical metric and TrueType subsetting:
|
|
|
|
|
Text drawn with vertical metrics cannot currently use TrueType
|
|
|
|
|
subsetting for PDF/PS output as the code doesn't write out the
|
|
|
|
|
necessary VHEA or VMTX entries to the TrueType font
|
|
|
|
|
objects. As a result, cairo uses Type3 fonts which generates
|
|
|
|
|
slightly different outlines. Type1 has the same problem.
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
• Make image fallbacks finer-grained than a whole page (most of the
|
|
|
|
|
This is work to be done in the cairo-analysis-surface layer
|
|
|
|
|
and will benefit ps, pdf, svg, and any other
|
|
|
|
|
analysis-surface-using backends.
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
Backend-specific improvements
|
|
|
|
|
==============================
|
|
|
|
|
Win32 backend
|
|
|
|
|
• Fix self-copy test
|
|
|
|
|
• Fix trap-clip test
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
PS/PDF improvements
|
|
|
|
|
• Fix extend modes in PDF
|
|
|
|
|
• Fix encoding "issues" reported here:
|
|
|
|
|
http://lists.freedesktop.org/archives/cairo/2006-December/008985.html
|
|
|
|
|
• Use glyph advances to generate more compact PostScript (done for PDF)
|
2007-01-15 00:26:20 -05:00
|
|
|
|
2007-04-05 16:35:03 -07:00
|
|
|
Xlib backend
|
|
|
|
|
• xlib backend requires xrender to compile, while it can perform without
|
|
|
|
|
xrender at run time. Make it compile without it. see
|
|
|
|
|
http://lists.freedesktop.org/archives/cairo/2006-October/008075.html
|
|
|
|
|
• Switch to server-side gradients
|
|
|
|
|
• Switch to using XRenderAddTraps rather than XRenderCompositeTrapezoids
|
|
|
|
|
• Use XlibRectStretch for nearest-neighbor image scaling.
|