[cairo-commit] [cairo-www] src/todo.mdwn

Carl Worth cworth at freedesktop.org
Wed Jul 4 06:46:32 PDT 2007


 src/todo.mdwn |  159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 159 insertions(+)

New commits:
commit 78c0c737b9110f8eba8c276f91ad41125f32b295
Author: Carl Worth <cworth at cworth.org>
Date:   Wed Jul 4 06:40:19 2007 -0700

    Add todo page

diff --git a/src/todo.mdwn b/src/todo.mdwn
new file mode 100644
index 0000000..44690b8
--- /dev/null
+++ b/src/todo.mdwn
@@ -0,0 +1,159 @@
+[[meta title="Cairo's TODO list"]]
+
+The TODO list for cairo is separated into things to improve this
+website and things to improve the cairo library itself.
+
+Website improvements
+====================
+ * Integrate [old snippets](/samples) into the wiki proper
+
+ * Integrate subset of [old cairo-demo
+   programs](http://webcvs.cairographics.org/cairo-demo/) into the
+   wiki proper
+
+ * Integrate existing [reference manual](/manual) into the wiki proper
+
+ * Fix these broken links:
+
+   <ul>
+
+[[brokenlinks ]]
+
+   </ul>
+
+Library improvements
+====================
+This is 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 [[roadmap]] for those).
+
+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, (via the
+[[mailing_list|lists]]), and you can move the item to [[roadmap]] with
+your name on it.
+
+
+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`
+   or another way to provide that functionality.
+
+ * Add support for programmatic patterns, (ie. arbitrary gradients)
+
+ * Add `cairo_arc_to`.
+
+   see <http://lists.freedesktop.org/archives/cairo/2005-August/004801.html>
+   or see `arc_to` branch in bedhad's repository
+
+ * Add support for custom caps
+
+   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.
+
+ * `cairo_surface_show_page()` and `cairo_surface_copy_page()`
+
+   `show_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.
+
+ * Polling API (`cairo_get_serial` and `cairo_changed`)
+
+ * `cairo_save`/`restore_path()`
+
+   <http://lists.freedesktop.org/archives/cairo/2007-April/010363.html>
+
+ * `cairo_copy_clip()` and `cairo_copy_clip_flat()`
+
+   <http://lists.freedesktop.org/archives/cairo/2007-April/010520.html>
+
+Performance improvements
+------------------------
+ * Add dashing support to the fast-path rectilinear stroking
+   code, (will help GTK+ focus rectangle, for example)
+
+ * Improve software polygon compositing by doing it in a
+   single scanline pass rather than tessellating, rasterizing, then
+   compositing the entire polygon.
+
+ * Clip trapezoids that are partially outside the clip region
+
+Other fixes
+-----------
+ * Fix/define tolerance for PS/PDF/SVG backends
+
+ * Fix `CAIRO_EXTEND_REFLECT` in pixman and remove the current hack
+
+ * Fix disabled show-glyphs-many case in cairo test suite
+
+ * Get pixman merged up with X server fb implementation
+
+ * Possibly remove pdiff (slows down the test suite with little
+   benefit)
+
+ * Make font backends separable from their native surfaces
+
+ * 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?).
+
+ * The new tessellator has greatly improved performance, robustness,
+   and code readability, but may still suffer from "missed
+   intersections" as described here:
+
+   <http://cm.bell-labs.com/cm/cs/doc/93/2-27.ps.gz>
+
+   [Hobby93c] John D. Hobby, Practical Segment Intersection with
+   Finite Precision Output, Computation Geometry Theory and
+   Applications, 13(4), 1999.
+
+   We could do multi-pass Bentley-Ottmann or add a tolerance-square
+   pass as described by Hobby in the paper above.
+
+ * 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.
+
+ * 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.  Adrian has started work on this:
+
+   <http://lists.freedesktop.org/archives/cairo/2007-June/010774.html>
+
+ * Pen matrix locking.  Carl has written an excellent summary but
+   unfortunately that was not sent to the mailing list.  Ask him.
+
+ * Explore Render-like component-alpha ARGB masks
+
+Backend-specific improvements
+-----------------------------
+ * Win32 backend
+
+    * Fix self-copy test
+    * Fix trap-clip test
+
+ * 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)
+
+ * 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.
+


More information about the cairo-commit mailing list