[cairo-commit] ROADMAP TODO
Carl Worth
cworth at kemper.freedesktop.org
Fri Aug 18 15:09:21 PDT 2006
ROADMAP | 95 +---------------------------------------
TODO | 150 +++++++++++++++++++++++++++++++++++++++++++---------------------
2 files changed, 105 insertions(+), 140 deletions(-)
New commits:
diff-tree 33b62f47a451cb3ee70e7343976f5d1f06adb443 (from d1be19e1604f77a0a156bea6d40914aa672c6d81)
Author: Carl Worth <cworth at cworth.org>
Date: Fri Aug 18 15:08:58 2006 -0700
Move unscheduled features and bugs from ROADMAP to TODO
diff --git a/ROADMAP b/ROADMAP
index ade1076..62e16ac 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -89,101 +89,6 @@ cairo 1.4.0 ideas (think performance!)
CAIRO_EXTEND_PAD is not implemented for surface patterns
CAIRO_FORMAT_RGB16_565 should be deprecated
-Unscheduled stuff we'd like to get to at some point
-===================================================
- Fairly severe bugs
- 6806 cairo 1.0.4 crash progressbar in window
- PDF: minefield shows too-tiny bitmapped fonts in image fallback
- PDF: minefield shows strangely hinted glyph shapes (only without truetype subsetting)
- PDF: minefield has broken selection (only with truetype subsetting code)
- 4630 Fonts too large when drawing to image surface while printing
- 4863 stroking problems with wide dashed lines
- 7497 _cairo_color_compute_shorts fails with FPU set to single ...
-
- Fix all expected failures (XFAIL) in the test suite
- a8-mask
- extend-reflect
- filter-nearest-offset
- leaky-dash
- self-intersecting
- text-rotate
-
- Fix disabled tests in the test suite
- show-glyphs-many
-
- 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.]
-
- 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
-
- 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
-
- Misc
- 1. xlib backend requires xrender to compile, while it can perform without
- xrender at run time. Make it compile without it.
-
-[Here's some stuff that was sitting in the BUGS file. Some of these
-are likely not existing bugs anymore. We should invesitgate each and
-either move it up into the ROADMAP above or else just delete it.]
-
---
-
-The caches need to be invalidated at font destruction time.
-
---
-
-The polygon tessellation routine has problems. It appears that the
-following paper has the right answers:
-
- 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.
-
-Recent improvements to make the intersection code more robust (using
-128-bit arithmetic where needed), have exposed some of the weakness in
-the current tessellation implementation. So, for now, filling some
-polygons will cause "leaking" until we implement Hobby's algorithm.
-
---
-
-Stroke extents might not work for degenerate cases, (e.g. single
-vertical or horizontal line).
-
---
-
-Stroke width of 0 might do bad things.
-
---
-
-Could there be a bug in PS backend exposed by?:
-
-cairo_save
-cairo_clip
-cairo_restore
-...
-
-This needs a new testcase.
-
---
-
-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.
+For other ideas that have been proposed for cairo but are not yet
+scheduled on the roadmap of any particular release, please see the
+TODO file next to this ROADMAP file.
diff --git a/TODO b/TODO
index 7a8e164..b51418b 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,5 @@
+This file contains a list of some things that have been suggested
+
Changes that are expected to impact the public API
==================================================
@@ -9,50 +11,15 @@ Changes that are expected to impact the
||||/
Backwards compatible (API additions only)
-----------------------------------------
- cairo_begin_group, cairo_end_group, cairo_get_group
-PDR C cairo_surface_mark_dirty (see below for details)
-PDRTC Add support for non-antialiased rendering + API
Add CAIRO_FILL_RULE_INVERSE_WINDING and CAIRO_FILL_RULE_INVERSE_EVEN_ODD
- Add cairo_text_glyphs (see below for details)
Add support for programmatic patterns, (ie. arbitrary gradients)
P Add cairo_arc_to.
Add support for custom caps (see below for details)
- Add support for getting at image data from image surface
Add CAIRO_STATUS_DESTROYED
Add cairo_finish
-Backwards incompatible (API deletions or changes)
--------------------------------------------------
-PDR C cairo_surface_finish, cairo_surface_flush
-PDR C A hidden offset for the xlib backend
-PDR C Consistent error handling for all objects
-PDRTC Split cairo_format_t (see below for details)
-P---C Remove cairo_status_string in favor of cairo_status_to_string
-
Details on some of the above changes
------------------------------------
-* cairo_text_glyphs:
-
- It would function as a sort of bridge between the toy and the
- real text APIs:
-
- > void
- > cairo_text_glyphs (cairo_t *cr, const unsigned char *utf8,
- > cairo_glyph_t *glyphs, int *num_glyphs);
- >
- > with num_glyphs as an input-output parameter. The behavior of this
- > function would be such that calling:
- >
- > cairo_text_glyphs (cr, string, glyphs, &num_glyphs);
- > cairo_show_glyphs (cr, glyphs, num_glyphs);
- >
- > would be equivalent too:
- >
- > cairo_show_text (cr, string);
- >
- > as long as the original size of glyphs/num_glyphs was large
- > enough.
-
* support for custom caps:
It would be nice if the user had a mechanism to reliably draw custom
@@ -63,24 +30,111 @@ Details on some of the above changes
Changes that do not affect the public API
=========================================
-* Fix clipping to work for all operators. The equation we have come up
- with is:
-
- ((src Op dest) In clip) Add (dest Out clip)
-
* Change stroke code to go through one giant polygon. This will fix
problems with stroking self-intersecting paths.
* Fix the intersection problem, (see reference to Hobby's paper
mentioned in cairo_traps.c).
-* Implement dashing for cairo_curve_to.
-
-* Stroking closed, degenerate paths should still draw caps. Round
- caps are easy; square should probably draw an axis-aligned square.
-
* Should add geometry pruning as appropriate.
-* Verification, profiling, optimization.
-
- centi_unfinished.svg may provide a good test case.
+Other changes (this text used to be in RODMAP)
+==============================================
+ Fairly severe bugs
+ 6806 cairo 1.0.4 crash progressbar in window
+ PDF: minefield shows too-tiny bitmapped fonts in image fallback
+ PDF: minefield shows strangely hinted glyph shapes (only without truetype subsetting)
+ PDF: minefield has broken selection (only with truetype subsetting code)
+ 4630 Fonts too large when drawing to image surface while printing
+ 4863 stroking problems with wide dashed lines
+ 7497 _cairo_color_compute_shorts fails with FPU set to single ...
+
+ Fix all expected failures (XFAIL) in the test suite
+ a8-mask
+ extend-reflect
+ filter-nearest-offset
+ leaky-dash
+ self-intersecting
+ text-rotate
+
+ Fix disabled tests in the test suite
+ show-glyphs-many
+
+ 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.]
+
+ 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
+
+ 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
+
+ Misc
+ 1. xlib backend requires xrender to compile, while it can perform without
+ xrender at run time. Make it compile without it.
+
+Some known bugs (this text used to be in BUGS)
+==============================================
+XXX: Many of these bugs are likely no longer valid. We should
+invesitgate each and either move it up into TODO (above) or ROADMAP or
+else just delete it.
+
+--
+
+The caches need to be invalidated at font destruction time.
+
+--
+
+The polygon tessellation routine has problems. It appears that the
+following paper has the right answers:
+
+ 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.
+
+Recent improvements to make the intersection code more robust (using
+128-bit arithmetic where needed), have exposed some of the weakness in
+the current tessellation implementation. So, for now, filling some
+polygons will cause "leaking" until we implement Hobby's algorithm.
+
+--
+
+Stroke extents might not work for degenerate cases, (e.g. single
+vertical or horizontal line).
+
+--
+
+Stroke width of 0 might do bad things.
+
+--
+
+Could there be a bug in PS backend exposed by?:
+
+cairo_save
+cairo_clip
+cairo_restore
+...
+
+This needs a new testcase.
+
+--
+
+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.
More information about the cairo-commit
mailing list