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.