This file contains a list of some things that have been suggested

Changes that are expected to impact the public API
==================================================

 Patch submitted to mailing list?
/ Documentation included in patch?
|/ Review of patch completed?
||/ Test case included?
|||/ Committed.
||||/
Backwards compatible (API additions only)
-----------------------------------------
	Add CAIRO_FILL_RULE_INVERSE_WINDING and CAIRO_FILL_RULE_INVERSE_EVEN_ODD
	Add support for programmatic patterns, (ie. arbitrary gradients)
P	Add cairo_arc_to.
	Add support for custom caps (see below for details)
	Add CAIRO_STATUS_DESTROYED
See New Api below

Details on some of the above changes
------------------------------------
* 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.

Changes that do not affect the public API
=========================================
* 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).

* Should add geometry pruning as appropriate.

* Fix/define tolerance for PS/PDF/SVG backends

* Fix CAIRO_EXTEND_REFLECT in pixman and remove the current hack

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

 Fix all expected failures (XFAIL) in the test suite

 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
     cairo_font_options_[gs]et_writing_mode()
	http://lists.freedesktop.org/archives/cairo/2007-January/009372.html
     cairo_font_metrics_t
	http://lists.freedesktop.org/archives/cairo/2007-January/009373.html
     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.
     User-font API---a couple of threads of interest:
	http://lists.freedesktop.org/archives/cairo/2007-February/009539.html
        http://lists.freedesktop.org/archives/cairo/2006-May/006893.html
	http://lists.freedesktop.org/archives/cairo/2006-May/006888.html
     Polling API (cairo_get_serial and cairo_changed)

 PS/PDF improvements
     - Make image fallbacks finer-grained than a whole page
     - 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 PS/PDF (done for PDF)
     - Look into generating EPS.  That may be done using a new constructor
       for the PS backend, or better, using an API similar to
       cairo_svg_surface_restrict_to_version.  The PDF backend needs a
       restrict_to API at some point too.

 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
     - Cache patterns (maybe solid ones only). see
       http://lists.freedesktop.org/archives/cairo/2006-December/008916.html
       http://lists.freedesktop.org/archives/cairo/2007-February/009825.html

 Quartz backend (maintainer needed!)
     - Mark Quartz backend as supported:
	 a. Incorporate into test suite
	 b. Correct output for the entire suite

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 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.

--

This puts the cairo_t in an error state:
cairo_scale (cr, 0, 0);

--

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.

--

Text transformations is a mess in PS/PDF backends.  Many combinations of
rotated/scaled ctm, rotated/scaled font_matrix, and subsetting code used
(Type1/Type3/TrueType) are broken.

--

Move docs inline.  see
http://lists.freedesktop.org/archives/cairo/2006-July/007431.html

--

Look into the glyph cache.  Moreover, make sure we are reusing scaled fonts
enough.

