head 1.66; access; symbols RELEASE_1_0_2:1.34 BRANCH_1_0:1.34.0.2 RELEASE_1_0_0:1.34 BRANCH_SCALED_GLYPH:1.32.0.2 RELEASE_0_9_2:1.32 RELEASE_0_9_0:1.31 SNAPSHOT_0_6_0:1.28 SNAPSHOT_0_5_2:1.21 SNAPSHOT_0_5_1:1.8 SNAPSHOT_0_5_0:1.6; locks; strict; comment @# @; 1.66 date 2006.01.12.00.01.25; author cworth; state Exp; branches; next 1.65; commitid 3e6f43c59c524567; 1.65 date 2006.01.11.19.53.33; author cworth; state Exp; branches; next 1.64; commitid 392e43c5623a4567; 1.64 date 2006.01.05.23.17.02; author cworth; state Exp; branches; next 1.63; commitid 5f9f43bda8eb4567; 1.63 date 2005.12.08.00.16.20; author cworth; state Exp; branches; next 1.62; commitid 583543977b514567; 1.62 date 2005.12.07.20.19.10; author cworth; state Exp; branches; next 1.61; commitid 3ea9439743ba4567; 1.61 date 2005.11.21.18.50.20; author cworth; state Exp; branches; next 1.60; commitid 35b5438216e94567; 1.60 date 2005.11.11.00.25.18; author cworth; state Exp; branches; next 1.59; commitid 436b4373e4ec4567; 1.59 date 2005.11.09.01.43.13; author cworth; state Exp; branches; next 1.58; commitid 10534371542e4567; 1.58 date 2005.11.08.19.44.18; author cworth; state Exp; branches; next 1.57; commitid 125a437100104567; 1.57 date 2005.11.08.19.39.21; author cworth; state Exp; branches; next 1.56; commitid f034370fee64567; 1.56 date 2005.10.25.22.57.28; author cworth; state Exp; branches; next 1.55; commitid 2507435eb8544567; 1.55 date 2005.10.18.23.09.21; author cworth; state Exp; branches; next 1.54; commitid 23ba4355809e4567; 1.54 date 2005.10.18.22.58.32; author cworth; state Exp; branches; next 1.53; commitid 217843557e154567; 1.53 date 2005.10.18.19.41.01; author cworth; state Exp; branches; next 1.52; commitid 34b643554fca4567; 1.52 date 2005.10.12.21.23.11; author cworth; state Exp; branches; next 1.51; commitid 66df434d7ebe4567; 1.51 date 2005.10.09.05.44.56; author cworth; state Exp; branches; next 1.50; commitid 6cd24348ae504567; 1.50 date 2005.09.30.00.26.20; author inte; state Exp; branches; next 1.49; commitid 483c433c86064567; 1.49 date 2005.09.29.13.49.47; author cworth; state Exp; branches; next 1.48; commitid 5718433bf0f84567; 1.48 date 2005.09.28.17.25.24; author tor; state Exp; branches; next 1.47; commitid 4cce433ad1f84567; 1.47 date 2005.09.27.22.07.15; author cworth; state Exp; branches; next 1.46; commitid 575b4339c2904567; 1.46 date 2005.09.27.20.22.46; author tor; state Exp; branches; next 1.45; commitid e804339aa0b4567; 1.45 date 2005.09.27.19.44.32; author cworth; state Exp; branches; next 1.44; commitid 76094339a11d4567; 1.44 date 2005.09.27.00.21.47; author cworth; state Exp; branches; next 1.43; commitid 369d433890984567; 1.43 date 2005.09.20.00.30.27; author cworth; state Exp; branches; next 1.42; commitid 2cee432f58204567; 1.42 date 2005.09.19.18.56.27; author cworth; state Exp; branches; next 1.41; commitid 75da432f09d84567; 1.41 date 2005.09.16.17.27.32; author cworth; state Exp; branches; next 1.40; commitid 70cf432b00824567; 1.40 date 2005.09.16.17.11.52; author cworth; state Exp; branches; next 1.39; commitid 6874432afcd64567; 1.39 date 2005.09.13.22.47.59; author cworth; state Exp; branches; next 1.38; commitid 3eba4327571c4567; 1.38 date 2005.09.10.00.10.52; author cworth; state Exp; branches; next 1.37; commitid 5cf5432224894567; 1.37 date 2005.09.08.23.18.00; author cworth; state Exp; branches; next 1.36; commitid 2cd44320c6a54567; 1.36 date 2005.09.07.23.57.59; author cworth; state Exp; branches; next 1.35; commitid 4045431f7e844567; 1.35 date 2005.09.02.23.17.48; author cworth; state Exp; branches; next 1.34; commitid 31b24318dd994567; 1.34 date 2005.08.24.12.21.50; author cworth; state Exp; branches; next 1.33; commitid 2911430c665b4567; 1.33 date 2005.08.19.00.11.42; author cworth; state Exp; branches; next 1.32; commitid 4838430523bc4567; 1.32 date 2005.08.09.19.35.09; author cworth; state Exp; branches; next 1.31; commitid 2b3942f9056b4567; 1.31 date 2005.08.06.23.57.14; author cworth; state Exp; branches; next 1.30; commitid 25d542f54e574567; 1.30 date 2005.08.01.18.45.42; author otaylor; state Exp; branches; next 1.29; commitid 232342ee6dcc4567; 1.29 date 2005.07.29.22.35.19; author cworth; state Exp; branches; next 1.28; commitid 574642eaaf254567; 1.28 date 2005.07.28.17.51.37; author cworth; state Exp; branches; next 1.27; commitid 191142e91b264567; 1.27 date 2005.07.27.20.28.15; author cworth; state Exp; branches; next 1.26; commitid 404442e7ee5d4567; 1.26 date 2005.07.22.04.02.11; author cworth; state Exp; branches; next 1.25; commitid 25d142e06fbf4567; 1.25 date 2005.07.21.15.45.57; author keithp; state Exp; branches; next 1.24; commitid 1ffb42dfc32d4567; 1.24 date 2005.07.21.14.41.20; author cworth; state Exp; branches; next 1.23; commitid 36d42dfb40b4567; 1.23 date 2005.07.21.04.54.35; author cworth; state Exp; branches; next 1.22; commitid 142d42df2a874567; 1.22 date 2005.07.21.01.31.17; author cworth; state Exp; branches; next 1.21; commitid 7f7c42defae34567; 1.21 date 2005.07.18.15.04.16; author cworth; state Exp; branches; next 1.20; commitid 6cc142dbc4ee4567; 1.20 date 2005.07.15.20.45.19; author vladimir; state Exp; branches; next 1.19; commitid 78a742d820464567; 1.19 date 2005.07.11.23.24.19; author cworth; state Exp; branches; next 1.18; commitid 5df42d2ffa14567; 1.18 date 2005.07.11.23.09.55; author cworth; state Exp; branches; next 1.17; commitid 13042d2fc414567; 1.17 date 2005.07.11.23.07.08; author cworth; state Exp; branches; next 1.16; commitid 7f2b42d2fb9a4567; 1.16 date 2005.07.11.21.03.51; author cworth; state Exp; branches; next 1.15; commitid 4f3e42d2deb54567; 1.15 date 2005.07.11.20.37.44; author cworth; state Exp; branches; next 1.14; commitid 43e242d2d8954567; 1.14 date 2005.07.11.20.29.45; author cworth; state Exp; branches; next 1.13; commitid 3e7b42d2d6b74567; 1.13 date 2005.07.07.08.15.21; author cworth; state Exp; branches; next 1.12; commitid 20c442cce4974567; 1.12 date 2005.06.23.22.52.37; author cworth; state Exp; branches; next 1.11; commitid 177342bb3d334567; 1.11 date 2005.06.23.19.45.38; author cworth; state Exp; branches; next 1.10; commitid 419d42bb11604567; 1.10 date 2005.06.23.05.12.09; author cworth; state Exp; branches; next 1.9; commitid 19e742ba44a74567; 1.9 date 2005.06.23.00.09.08; author cworth; state Exp; branches; next 1.8; commitid 247d42b9fda24567; 1.8 date 2005.06.15.23.52.11; author cworth; state Exp; branches; next 1.7; commitid 28f942b0bf294567; 1.7 date 2005.06.10.20.23.24; author cworth; state Exp; branches; next 1.6; commitid 20942a9f6ba4567; 1.6 date 2005.05.06.20.42.45; author cworth; state Exp; branches; next 1.5; commitid 5f1b427bd6c14567; 1.5 date 2005.04.28.20.41.00; author otaylor; state Exp; branches; next 1.4; commitid cd642714a584567; 1.4 date 2005.04.26.20.05.51; author cworth; state Exp; branches; next 1.3; commitid 24b1426e9f184567; 1.3 date 2005.04.18.12.25.57; author cworth; state Exp; branches; next 1.2; 1.2 date 2005.04.11.13.56.10; author cworth; state Exp; branches; next 1.1; 1.1 date 2005.04.08.20.44.22; author cworth; state Exp; branches; next ; desc @@ 1.66 log @ 2006-01-11 Carl Worth * ROADMAP: Note that PS backend has now been switched over to use cairo_paginated_surface_t. * src/cairo-paginated-surface.c: (_cairo_paginated_surface_acquire_source_image), (_paint_page), (_cairo_paginated_surface_snapshot): Switch from ARGB32 to RGB24 for intermediate image surface since that's all that the current users of cairo_paginated_surface support anyway. * src/cairo-ps-surface.c: (_cairo_ps_surface_emit_header), (_cairo_ps_surface_emit_footer), (_cairo_ps_surface_create_for_stream_internal), (_cairo_surface_is_ps), (cairo_ps_surface_set_dpi), (_cairo_ps_surface_finish), (_cairo_ps_surface_start_page), (_cairo_ps_surface_copy_page), (_cairo_ps_surface_show_page), (_cairo_ps_surface_add_fallback_area), (_cairo_ps_surface_composite), (_cairo_ps_surface_fill_rectangles), (_cairo_ps_surface_composite_trapezoids), (_cairo_ps_surface_path_move_to), (_cairo_ps_surface_path_line_to), (_cairo_ps_surface_path_curve_to), (_cairo_ps_surface_path_close_path), (_cairo_ps_surface_intersect_clip_path), (_cairo_ps_surface_get_extents), (_cairo_ps_surface_old_show_glyphs), (_cairo_ps_surface_fill): Switch cairo_ps_surface_t over to use the new cairo_paginated_surface_t. This drastically simplifies the implementation, but temporarily puts the PostScript output back into the land of one-image-per-page. To be fixed soon though with improvements to cairo_paginated_surface_t. Everything still passes the test suite which is good. The test suite currently does no testing of multi-page output, which is quite bad. @ text @cairo 1.0.4? bug fixes (I don't know if this release will be needed or not, but I wanted a place to lodge a bug that slipped from 1.0.2 =================================================================== For each bug number XXXX below, see: https://bugs.freedesktop.org/show_bug.cgi?id=XXXX 4630 Fonts too large when drawing to image surface while printing 4863 stroking problems with wide dashed lines cairo 1.2.0 essential features (targeted for 2006-01-13) The release won't happen without these being complete. ======================================================== A. PS backend ---------- ✓1. Mark PS backend as supported: ✓a. Incorporate into test suite ✓b. Correct output for the entire test suite 2. Image fallbacks at finer-than-whole-page granularity ✓a. Switch to using cairo_paginated_surface_t b. Add analysis and clever replay to cairo_paginated_surface_t B. PDF backend ----------- ✓1. Mark PDF backend as supported ✓a. Incorporate into test suite ✓b. Correct output for the entire test suite (use image fallbacks as necessary). 2. Image fallbacks at finer-than-whole-page granularity ✓a. Switch to using cairo_paginated_surface_t b. Add analysis and clever replay to cairo_paginated_surface_t E. Fix memory leaks ---------------- 1. Ensure 'make check-valgrind' passes with no leaks cairo 1.2.0 desired features (targeted for 2006-01-13) If these aren't ready, they won't be in the release. [There are some bugs that need to be added here, and some bugs that should be bumped up into the essential features section.] ====================================================== C. 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.] D. Bug fixes --------- ✓1. Fix dashed splines. 2. Fix some expected failures (XFAIL) in the test suite a. a8-mask ✓b. clip-all c. filter-nearest-offset d. pixman-rotate e. extend-reflect E. API Additions ------------- 1. cairo_begin/end/get_group Status: cworth has a posted a preliminary patch, and keithp, krh, and otaylor answered all the tough questions it raised. There's not much work left to finish this one. Vladimir Vukicevic has taken up the torch on this and has posted an almost-complete set of patches. 2. The pango developers need one or two additions in order to implement pango's hex-box drawing. 5496 Add getters for cairo_scaled_font_t - This looks trivial, and is maybe "enough" for an ugly solution in pango. 5495 Need cairo_scaled_font_text_extents - I think I would actually prefer to add cairo_text_to_glyphs for this fix. F. Performance improvements ------------------------ 1. Cull and trim trapezoids outside clip region bounds 2. Generate more large pixel-aligned, rectangular trapezoids ✓3. Speed up glyph measurement (cache rewrite) ✓4. Speed up gradient computations G. SVG backend ----------- ✓1. Add experimental SVG backend cairo 1.4.0 desired features (Schedule unknown) =============================================== A. Quartz backend (maintainer needed!) ----------------------------------- 1. Mark Quartz backend as supported: a. Incorporate into test suite b. Correct output for the entire suite B. SVG backend ----------- 1. Mark SVG backend as supported a. Incorporate into test suite b. Correct output for the entire suite B. Performance improvements ------------------------ 1. New tessellator (more robust and faster) C. Bug fixes --------- 1. Fix all expected failures (XFAIL) in the test suite a. self-intersecting AKA. https://bugs.freedesktop.org/show_bug.cgi?id=3752 Fix depends on [A1]. @ 1.65 log @ 2006-01-11 Carl Worth * ROADMAP: Note that from here on out, the PDF output should always pass the entire test suite! * src/cairo-paginated-surface-private.h: * src/cairo-paginated-surface.c: (_cairo_surface_is_paginated), (_cairo_paginated_surface_get_target): Add new functions needed by users of cairo_paginated_surface_t. * src/cairo-paginated-surface.c: (_cairo_paginated_surface_snapshot): Always snapshot a paginated surface to an image surface, rather than a surface similar to the target. We do this since paginated target surfaces are allowed to not be complete surfaces, (such as not implementing acquire_source_surface). * src/cairo-pdf-surface.c: (_cairo_pdf_surface_create_for_stream_internal), (_cairo_surface_is_pdf), (cairo_pdf_surface_set_dpi): Switch the implementation of cairo_pdf_surface_t to use cairo_paginated_surface_t. For now this means that all PDF output is fallback images, but this can change incrementally as we go forward. @ text @a18 9 ✓clip-operator ✓composite-integer-translate-source ✓linear-gradient ✓operator-clear ✓operator-source ✓self-copy ✓text-pattern ✓trap-clip ✓unbounded-operator d22 1 a22 1 a. Switch to using cairo_paginated_surface_t @ 1.64 log @ 2006-01-05 Carl Worth * ROADMAP: Slip 1.2.0 projected data (again) out to 2006-01-13. Note that win32 is now incorporated into the test suite and is only failing two tests (self-copy and trap-clip). Note new progress on cairo_push/pop_group. Add item to support pango's hex-box drawing. Note that gradient computation performance has been improved. Note that experimental SVG backend has been added. @ text @d31 5 d38 1 a38 1 1. Mark PDF backend as supported d42 2 a43 6 b. Correct output for the entire test suite (use image fallbacks as necessary, meta-surface?): a. Gradients with more than two stops b. All of the cairo_operator_t modes d45 1 a45 1 c. Gradients with transparency d47 1 a47 1 d. Repeating surface patterns d49 2 a50 1 e. cairo_mask @ 1.63 log @ 2005-12-07 Carl Worth * ROADMAP: Note that that PDF backend has been incorporated into the test suite. @ text @d9 1 a9 1 cairo 1.2.0 essential features (targeted for 2005-12-15) d54 1 a54 1 cairo 1.2.0 desired features (targeted for 2005-11-15) d63 1 a63 1 1. Incorporate into test suite d66 5 d94 13 d116 2 d120 1 a120 1 1. Add experimental SVG backend @ 1.62 log @ 2005-12-07 Carl Worth * ROADMAP: Note that self-copy now works with the PS backend. * src/cairo-array.c: (_cairo_array_init), (_cairo_array_init_snapshot), (_cairo_array_fini), (_cairo_array_grow_by), (_cairo_array_truncate), (_cairo_array_append), (_cairo_array_append_multiple), (_cairo_array_allocate): Add _cairo_array_init_snapshot and checks for is_snapshot throughout. * src/cairoint.h: * src/cairo-surface.c: (_cairo_surface_acquire_source_image), (_fallback_snapshot), (_cairo_surface_snapshot): Add a new surface->backend->snapshot function. * src/cairo-meta-surface-private.h: * src/cairo-meta-surface.c: (_cairo_meta_surface_create), (_cairo_meta_surface_create_similar), (_cairo_meta_surface_finish), (_cairo_meta_surface_acquire_source_image), (_cairo_meta_surface_release_source_image), (_cairo_meta_surface_snapshot), (_cairo_meta_surface_get_extents): Implement _cairo_meta_surface_snapshot and _cairo_meta_surface_acquire/release_source_image. Change _cairo_meta_surface_create to require the width and height in pixels to be used when replaying for purposed of _cairo_meta_surface_aquire_source_image. * src/cairo-ps-surface.c: (_cairo_ps_surface_create_for_stream_internal), (_cairo_ps_surface_show_page), (_cairo_ps_surface_snapshot), (_ps_output_old_show_glyphs): Track change in prototype of _cairo_meta_surface_create. Implement _cairo_ps_surface_snapshot by deferring down into _cairo_meta_surface_snapshot. @ text @d35 1 a35 1 a. Incorporate into test suite @ 1.61 log @ 2005-11-21 Carl Worth * ROADMAP: Add reminder to fix all memory leaks (as determined by the test suite) before release 1.2.0. * src/cairo-gstate.c: (_cairo_gstate_stroke), (_cairo_gstate_fill): Patch leak of patterns as noted in bug #5100 (thanks to Richard Stellingwerff ). @ text @d14 1 a14 1 1. Mark PS backend as supported: d18 1 a18 1 b. Correct output for the entire test suite d24 1 a24 1 self-copy @ 1.60 log @ 2005-11-10 Carl Worth * ROADMAP: Change scheduled release date of 1.2.0 out to 2005-12-15. @ text @d50 4 @ 1.59 log @ 2005-11-08 Carl Worth * ROADMAP: Note that PS is now passing all tests except for self-copy. * src/cairo-ps-surface.c: (_cairo_ps_surface_paint), (_cairo_ps_surface_mask), (_cairo_ps_surface_stroke), (_cairo_ps_surface_fill), (_cairo_ps_surface_show_glyphs), (_ps_output_paint), (_ps_output_mask), (_ps_output_stroke), (_ps_output_fill), (_ps_output_show_glyphs): Add missing glue to hook up PS backend with new meta-surface support for the 5 basic drawing operations. Currently, this forces image fallbacks for all operations. * test/cairo-test.c: (ps_surface_write_to_png): Switch from gs device of pngalpha to png16m which for some reason gives the correct result for nil-surface now, while pngalpha does not. * test/clip-operator.c: (draw): Key off of N_OPERATORS as the loop control for easier trimming down of this test case when debugging. * src/cairoint.h: Rename stroke_style parameter to style in backend->stroke parameter list. * test/caps-joins-ps-rgb24-ref.png: * test/caps-sub-paths-ps-rgb24-ref.png: * test/clip-fill-rule-ps-rgb24-ref.png: * test/clip-nesting-ps-rgb24-ref.png: * test/clip-twice-ps-rgb24-ref.png: * test/dash-caps-joins-ps-rgb24-ref.png: * test/dash-offset-negative-ps-rgb24-ref.png: * test/fill-and-stroke-ps-rgb24-ref.png: * test/fill-rule-ps-rgb24-ref.png: * test/leaky-polygon-ps-rgb24-ref.png: * test/line-width-ps-rgb24-ref.png: * test/path-data-ps-rgb24-ref.png: * test/rectangle-rounding-error-ps-rgb24-ref.png: * test/show-text-current-point-ps-rgb24-ref.png: * test/text-antialias-gray-ps-rgb24-ref.png: * test/text-antialias-none-ps-rgb24-ref.png: * test/text-antialias-subpixel-ps-rgb24-ref.png: * test/transforms-ps-rgb24-ref.png: * test/unantialiased-shapes-ps-rgb24-ref.png: Remove PS-specific reference images for many tests which are now using more fallback paths than before. @ text @d9 1 a9 1 cairo 1.2.0 essential features (targeted for 2005-11-15) @ 1.58 log @ 2005-11-08 Carl Worth * ROADMAP: Split the 1.2.0 features into "essential" and "desired". @ text @d19 1 a19 1 clip-operator d21 2 a22 2 linear-gradient operator-clear d25 1 a25 1 text-pattern d27 1 a27 1 unbounded-operator @ 1.57 log @ 2005-11-08 Carl Worth * ROADMAP: Slip the 1.2 release by two weeks to 2005-11-15. @ text @d9 3 a11 2 cairo 1.2.0 desired features (Scheduled for 2005-11-15) ======================================================= d50 7 @ 1.56 log @ 2005-10-25 Carl Worth * ROADMAP: Add critical bug #4863 to the 1.0.4 roadmap. @ text @d9 1 a9 1 cairo 1.2.0 desired features (Scheduled for 2005-11-01) @ 1.55 log @ 2005-10-18 Carl Worth * ROADMAP: Mark the composite-integer-translate-source test as now passing for the PS backend (6 to go). * src/cairo-ps-surface.c: (pattern_type_supported), (pattern_operation_needs_fallback): Use fallbacks for any operation using a pattern other than a solid pattern, since it's the only type that will actually emit anything right now. * src/cairo-ps-surface.c: (emit_surface_pattern), (emit_linear_pattern), (emit_radial_pattern): Add comments indicating these functions are not yet implemented. @ text @d7 1 @ 1.54 log @ 2005-10-18 Carl Worth Reviewed by: keithp * ROADMAP: Mark the operator-source and trap-clip tests as now passing for the PS backend (7 to go). * src/cairo-ps-surface.c: (_ps_output_add_fallback_area), (_ps_output_finish), (_ps_output_surface_create): Replace the surface->fallback_region with a page-level surface->fallback Boolean instead, since that's all it was being used as anyway. * src/cairo-ps-surface.c: (_ps_output_composite), (_ps_output_fill_rectangles), (_ps_output_composite_trapezoids), (_ps_output_intersect_clip_path), (_ps_output_show_glyphs): Do nothing in the ps_output->fallback case. * src/cairo-ps-surface.c: (_ps_output_render_fallbacks): Do nothing in the ! ps_output->fallback case. @ text @d18 1 a18 1 composite-integer-translate-source @ 1.53 log @ 2005-10-18 Carl Worth * ROADMAP: Added list of 9 remaining PS backend test suite failures to the 1.2.0 roadmap. @ text @d21 1 a21 1 operator-source d24 1 a24 1 trap-clip @ 1.52 log @ 2005-10-12 Carl Worth * ROADMAP: Add extend-reflect to the 1.2.0 roadmap. Mark dashed splines and clip-all as fixed. * test/Makefile.am: * test/extend-reflect.c: (main): Mark extend-reflect as an expected failure. @ text @d17 9 a25 1 (Looks like the bulk of failures are with source surface patterns) @ 1.51 log @ 2005-10-08 Carl Worth * ROADMAP: Remove 1.0.2 entries now that it is out. Note that the PS backend has now been added to the test suite. @ text @d48 1 a48 1 1. Fix dashed splines. d54 1 a54 1 b. clip-all d60 2 @ 1.50 log @2005-09-30 Bertram Felgenhauer reviewed by: cworth * src/cairo-hull.c (_cairo_hull_create), (_cairo_hull_vertex_compare): Using a pointer comparison as the fallback total order was wrong - these pointers are not stable. So we introduce our own total order instead. * ROADMAP: mark 4599 as fixed @ text @d1 3 a3 1 cairo 1.0.2 required bug fixes (Scheduled for 2005-10-03) a5 10 ========================================================= ✓4260 Antialised font is rendered over green background ✓4299 Assertion fails in "cairo-font.c" when using multithreads ✓4408 Missing dashes on stroked curves ✓4409 Dashes are missing initial caps ✓4414 SIGILL caused by libcairo when running gnome-terminal ✓PASS clip-all test ✓4599 Missing wedges on some paths ✓4602 cairo use of 0x0 images causes backend failure ✓4612 Text not being drawn if first character entirely out of surface d14 1 a14 1 a. Incorporate into test suite d17 1 @ 1.49 log @ 2005-09-29 Carl Worth * ROADMAP: Add date of 2005-10-03 for 1.0.2. Add 4630 to the 1.0.2 roadmap. @ text @d11 1 a11 1 4599 Missing wedges on some paths @ 1.48 log @ * ROADMAP: Note that Bug #4612 (Text not being drawn if first character entirely out of surface) is now fixed. * src/cairo-win32-font.c (_cairo_win32_scaled_font_glyph_bbox): Add cast so that sign conversion doesn't alter comparison. @ text @d1 1 a1 1 cairo 1.0.2 required bug fixes (Schedule unknown) d4 1 a4 1 ================================================= d14 1 a14 1 @ 1.47 log @ 2005-09-27 Carl Worth * ROADMAP (https): Add 4612 to the 1.0.2 roadmap. @ text @d13 1 a13 1 4612 Text not being drawn if first character entirely out of surface @ 1.46 log @ * ROADMAP: Note that Bug #4602 (use of 0x0 images causes win32 backend failure) is now fixed. * src/cairo-win32-surface.c (_create_dc_and_bitmap): Avoid creating size-0 bitmap, which fails. @ text @d13 2 @ 1.45 log @ 2005-09-27 Carl Worth * ROADMAP: Note that bug #4409 (Dashes are missing initial caps) is now fixed. * src/cairo-path-stroke.c: (_cairo_stroker_add_cap), (_cairo_stroker_add_leading_cap), (_cairo_stroker_add_trailing_cap), (_cairo_stroker_add_caps): Move face-flipping from inside _cairo_stroker_add_caps to new _cairo_stroker_add_leading_cap variant of _cairo_stoker_add_cap. * src/cairo-path-stroke.c: (_cairo_stroker_line_to_dashed): Change to call _cairo_stroker_add_leading_cap or _cairo_stroker_add_trailing_cap as appropriate. * test/Makefile.am (XFAIL_TESTS): * test/dash-caps-joins-ref.png: * test/dash-caps-joins.c: (main): Remove dash-caps-joins from the XFAIL list and add reference image. @ text @d12 1 a12 1 4602 cairo use of 0x0 images causes backend failure @ 1.44 log @ 2005-09-26 Carl Worth * ROADMAP: Added bug 4599 and 4602 to the 1.0.2 roadmap. @ text @d8 1 a8 1 4409 Dashes are missing initial caps @ 1.43 log @ 2005-09-19 Carl Worth * ROADMAP: Note that the clip-all test now passes. @ text @d11 2 @ 1.42 log @ 2005-09-19 Carl Worth * ROADMAP: Note that 4414 is now fixed. @ text @d10 1 a10 1 XFAIL clip-all test needs to be fixed @ 1.41 log @ 2005-09-16 Carl Worth * ROADMAP: Mark 4408 as resolved. @ text @d9 1 a9 1 4414 SIGILL caused by libcairo when running gnome-terminal @ 1.40 log @ 2005-09-16 Carl Worth * ROADMAP: Mark 4260 as resolved. Add 4414 to the 1.0.2 roadmap. @ text @d7 1 a7 1 4408 Missing dashes on stroked curves @ 1.39 log @ 2005-09-13 Carl Worth * ROADMAP: Mark bug #4299 fixed (by the several lock-related commits below). Add clip-all XFAIL to the 1.0.2 roadmap. @ text @d5 1 a5 1 4260 Antialised font is rendered over green background d9 1 @ 1.38 log @ 2005-09-09 Carl Worth * ROADMAP: Add two bugs to the 1.0.2 roadmap: 4408 Missing dashes on stroked curves 4409 Dashes are missing initial caps @ text @d5 5 a9 4 4260 Antialised font is rendered over green background 4299 Assertion fails in "cairo-font.c" when using multithreads 4408 Missing dashes on stroked curves 4409 Dashes are missing initial caps @ 1.37 log @2005-09-08 Carl Worth * ROADMAP: Add open bug list for 1.0.2. @ text @d7 2 @ 1.36 log @ 2005-09-07 Carl Worth * ROADMAP: Put win32 mutex locking on the 1.2.0 roadmap. Portability improvements for win32 thanks to Hans Breuer : * pixman/src/pixman.h: Defined sized-integer types when under the influence of _MSC_VER and without stdint.h. * src/cairoint.h: Use #error which is more portable than #warning, (and more indicative of where we want to be before the next release). @ text @d1 6 a6 4 cairo 1.0.2 required fixes (Schedule unknown) ============================================= [Need to look through bugzilla, particularly at new bugs filed since the 1.0.0 release] a106 4 D. Win32 backend ------------- 1. Implement CAIRO_MUTEX_LOCK and friends for thread-safety. @ 1.35 log @ 2005-09-02 Carl Worth * ROADMAP: Make a very preliminary attempt at 1.0.2, 1.2.0, and 1.4.0 roadmaps. @ text @d105 4 @ 1.34 log @ 2005-08-24 Carl Worth * NEWS: Add notes for 1.0 release. Thanks to Owen Taylor. * README: Note that PS and PDF backends are experimental. * ROADMAP: Note the progress that has been completed so that 1.0 is ready now. @ text @d1 59 a59 50 cairo 1.0 release requirements ============================== Implementation work ------------------- ✓I1. Fix clipping to be sane Status: Done (in cairo 0.9.0). ✓I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t) Status: Done (to some extent) (in cairo 0.5.2) We do have PDF output now, and "real" PostScript output on a per-page basis when the capabilities of the PostScript imaging model aren't exceeded. There are a few parts of these backend that aren't complete, but that will have to wait for post-1.0 I'm afraid. ✓I3. Add support for sub-pixel (ARGB) rendering of text. Status: Done (in cairo 0.6.0). ✓I4. Fix the cache lock deadlocking problems. Status: Done (in cairo 0.9.2) ✓I6. Fix all expected failures (XFAIL) in the test suite. Either there's a bug that needs to be fixed, or there are illegitimate tests that should be removed. Status: Done. 5 XFAIL test remain, but 4 of those have results that are acceptable. The only with with completely broken output (a8-mask) only happens with A8 image surface masks with weird padding, (so it is easy to avoid). API additions (more detail in TODO file) ---------------------------------------- ✓A7. cairo_surface_mark_dirty and cairo_surface_flush Status: Done (in cairo 0.9.0). ✓A12. cairo_xlib_surface_set_drawable Status: Done (in cairo 0.6.0). Performance work ---------------- ✓ Lots of performance work was done, such as the MMX-ification of pixman, the addition of cairo-benchmarks, and several 2x improvements for tests within cairo-benchamarks. Many thanks to Billy Biggs! Things that have been dropped from the 1.0 roadmap ================================================== A3. Add cairo_begin/end/get_group Difficulty: easy to hard (depending on how sophisticated an implementation is acceptable, and whether the cairo_meta_surface_t mentioned in [I2] is done) d64 37 a100 2 I5. Finish the workaround for Render's overlapping source/dest bug (Copy the source as needed) d102 3 a104 42 The most important part of this was to workaround when doing a straight copy, (eg. for scrolling), and that much is done. The remaining case is things like overlapping OVER of a surface with itself, which doesn't seem useful enough to be a priority at this point. I7. Fine-grained PostScript fallbacks (cairo_meta_surface_t) Difficulty: Moderate to hard Status: cairo_meta_surface provides most of the mechanics. From here on out its mostly a matter of refining the fallbacks to work on a finer-grained basis than the current all-or-nothing-per-page approach. I8. Finish implementing the PDF/PostScript backends: Difficulty: Moderate to hard Status: Most everything is there, but there are few things in cairo that these backends don't yet implement: * Gradients with more than two stops * All of the cairo_operator_t modes * Gradient with transparency * Repeating surface patterns * cairo_mask Some of these could be handled by fallbacks, either as a stop-gap measuer, or permanently. But that will also depend on finishing up [I7]. P2. Generate better trapezoids to go easier on the rasterizer Difficulty: moderate to hard Status: cworth drafted a plan to the list. vektor is looking at this, (or other similarly useful performance optimizations) P3. Glyph measurement needs to be sped up. Status: keithp and cworth planned this all out. keithp is working on this. @ 1.33 log @ 2005-08-18 Carl Worth * ROADMAP: Update the roadmap. Remove difficulty rating from completed tasks. Note that PostScript/PDF is (grudgingly) done as far as 1.0 is concerned, but there is more work to completing this that is slipped beyond 1.0. Note that the deadlock bug is fixed as of 0.9.2. Update who is working on what for performance. Add some new detail for post-1.0 PostScript/PDF work. Slip the overlapping source/dest Render workaround past 1.0. @ text @d23 1 a23 1 I6. Fix all expected failures (XFAIL) in the test suite. Either d26 4 d41 3 a43 9 P2. Generate better trapezoids to go easier on the rasterizer Difficulty: moderate to hard Status: cworth drafted a plan to the list. vektor is looking at this, (or other similarly useful performance optimizations) P3. Glyph measurement needs to be sped up. Status: keithp and cworth planned this all out. keithp is working on this. d90 10 @ 1.32 log @ 2005-08-09 Carl Worth * ROADMAP: Note that sane clipping is done now. Add release versions for previously completed items. * test/.cvsignore: Ignore unantialiased-shapes. @ text @a5 1 Dificulty: moderate d8 8 a15 4 I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t) Difficulty: hard Status: krh has committed cairo_meta_surface_t and a preliminary version of cairo_ps_surface_t that uses it. d20 2 a21 11 I4. Fix the cache lock deadlocking problems. Difficulty: Hard Status: The cache code was ugly enough that I ended up doing a major rewrite rather than just reviewing the locking. The upside is that the rewrite should also add the missing metrics caches which will fix some performance problems with text measurement. Almost done now. I5. Finish the workaround for Render's overlapping source/dest bug (Copy the source as needed) a29 2 Difficulty: trivial to add API, moderate to actually optimize based on it a32 1 Difficulty: Easy d39 3 a41 1 Status: cworth drafted a plan to the list d44 2 a45 1 Status: Now planned as part of I4 above ("cache lock deadlock") a52 1 d56 36 @ 1.31 log @ 2005-08-06 Carl Worth * BUGS: Remove several bugs that have been fixed. * ROADMAP: Slip group support off of the 1.0 roadmap. Update status of clipping work which otaylor is working on. * TODO: Update for progress on cairo_surface_mark_dirty (committed), non-antialiased rendering (patch), cairo_arc_to (patch), consistent error handling (committed), cairo_content_t (committed). Remove details for some completed items. * src/cairo-gstate.c (_cairo_gstate_set_font_face): Don't crash if font_face is NULL, (this is a documented mechanism for returning to the default font_face). @ text @d5 1 a5 1 I1. Fix clipping to be sane d7 1 a7 1 Status: otalyor is working on this. d15 1 a15 1 Status: Done. d38 1 a38 3 Status: cworth has sent an API proposal to the list for cairo_surface_mark_dirty. Recent discussions suggest that cairo_surface_flush will need to reset the clip. d42 1 a42 1 Status: Done. @ 1.30 log @2005-08-01 Owen Taylor * src/cairo.h src/cairoint.h src/cairo-surface.c: Add cairo_mark_dirty[_rectangle]() and cairo_flush() for * src/cairo-win32-surface.c: Implement a cairo_flush() that restores the original clip. Also restore the original flush when a surface is finished. * ROADMAP: Check off the item. @ text @d7 1 a7 1 Status: cworth has started looking at this a34 9 A3. Add cairo_begin/end/get_group Difficulty: easy to hard (depending on how sophisticated an implementation is acceptable, and whether the cairo_meta_surface_t mentioned in [I2] is done) Status: cworth has a posted a preliminary patch, and keithp, krh, and otaylor answered all the tough questions it raised. There's not much work left to finish this one. d54 11 @ 1.29 log @ * ROADMAP: Remove completed 0.6 tasks. Add cairo_surface_flush to the cairo_surface_mark_dirty task. @ text @d44 1 a44 1 A7. cairo_surface_mark_dirty and cairo_surface_flush @ 1.28 log @ * ROADMAP: Note that consistent error handling is done now. @ text @a0 19 cairo 0.6 release requirements ============================== The cairo 0.6 snapshot is intended to intended to have the last of the API _changes_ prior to cairo 1.0. Here they are: API changes ----------- ✓ A9. consistent error handling for all objects Difficulty: Easy to implement to get the API right. Hard to test. Status: Done. ✓ A10. cairo_font_options_t Difficulty: Moderate Status: Done. ✓ A11. cairo_xlib_surface_create needs to be screen-aware Difficulty: Easy Status: Done. d44 1 a44 1 A7. cairo_surface_mark_dirty d47 3 a49 1 Status: cworth has sent API proposal to list @ 1.27 log @ * ROADMAP: Note that the XFAIL tests all need to be fixed before 1.0. * test/.cvsignore: * test/Makefile.am: * test/text-antialias-gray-ref.png: * test/text-antialias-gray.c: (draw), (main): * test/text-antialias-none-ref.png: * test/text-antialias-none.c: (draw), (main): * test/text-antialias-subpixel.c: (draw), (main): Add three new tests for testing the various antialiasing options for text rendering. @ text @d8 1 a8 1 A9. consistent error handling for all objects d10 1 a10 4 Status: Done for cairo_t, cairo_path_t, and cairo_pattern_t. Still need to do cairo_font_face_t, cairo_scaled_font_t, and cairo_surface_t. Carl has signed up for this one. @ 1.26 log @ * ROADMAP: Note that sub-pixel text rendering is done now. @ text @d51 4 @ 1.25 log @2005-07-21 Keith Packard reviewed by: otaylor, cworth * ROADMAP: * src/cairo-xlib-surface.c: (cairo_xlib_surface_set_drawable): * src/cairo-xlib.h: Add cairo_xlib_surface_set_drawable which changes the target drawable for an xlib cairo_t to another which shares the same format, screen and display. @ text @d36 2 a37 3 I3. Add support for sub-pixel (ARGB) rendering of text. Status: keithp walked cworth through this. Patch sent to the list is almost complete. d69 1 a69 1 Status: Keith has a patch sitting ready on the list. @ 1.24 log @ * ROADMAP: Note that cairo_font_options_t is done now. @ text @d68 1 a68 1 A12. cairo_xlib_surface_set_drawable @ 1.23 log @ * ROADMAP: Mark cairo_xlib_surface_create as complete. Move cairo_xlib_surface_set_drawable from 0.6 to 1.0 since it is an API addition, not a change. @ text @d15 1 a15 1 A10. cairo_font_options_t d17 1 a17 3 Status: Owen has done all the hard thinking, and we've got consensus on the API now. Owen has sent two versions of the patch to the list. d21 1 a21 3 Status: Keith has cooked up a patch with an API that should be sufficient. It still needs testing on multi-screen X server. @ 1.22 log @ * ROADMAP: Move all API changes from 1.0 to 0.6. Other 1.0 API issues are strictly additions. @ text @d8 1 a8 1 A9. consistent error handling for all objects d15 1 a15 1 A10. cairo_font_options_t d21 1 a21 1 A11. cairo_xlib_surface_create needs to be screen-aware d23 1 a23 1 Status: Keith has cooked up a patch with an APi that should be a26 4 A12. cairo_xlib_surface_set_drawable Difficulty: Easy Status: Keith has a patch sitting ready on the list. d72 4 @ 1.21 log @ * ROADMAP: Note some progress. * test/cairo-test.h: * test/cairo-test.c: (cairo_test_create_surface_from_png), (cairo_test_create_pattern_from_png): New helper function to help create an image surface from a PNG file, while taking the srcdir environment variable into consideration. Rename the pattern creating helper function to match. * test/composite-integer-translate-over.c: (draw): * test/composite-integer-translate-source.c: (draw): Use new cairo_test_create_surface_from_png so that non-srcdir builds work. * test/mask.c: (set_image_pattern): * test/trap-clip.c: (set_image_pattern): Track change in cairo_test_create_pattern_from_png. @ text @d1 13 a13 14 cairo 0.5.2 =========== ✓ Get tor to sign off that the win32 stuff is up to snuff ✓ glyph path patch reviewed and committed ✓ Fix the BadMatch error introduced between 0.5.0 and 0.5.1: https://bugs.freedesktop.org/show_bug.cgi?id=3604 (It turns out this was just exposing an old bug in libpixman 0.1.4 which is already fixed in libpixman 0.1.5) Add a workaround for Render's overlapping source/dest bug ✓ Use XCopyArea when possible (integer translation) Otherwise make a copy of the source d15 15 a29 8 Fix the cache lock deadlocking problems. Difficulty: Hard Status: The cache code was ugly enough that I ended up doing a major rewrite rather than just reviewing the locking. The upside is that the rewrite should also add the missing metrics caches which will fix some performance problems with text measurement. Almost done now. a32 1 d48 11 a58 10 API Issues (more detail in TODO file) ------------------------------------- ✓A1. Add cairo_paint Difficulty: moderate or moderate to minor Dependencies: much easier after [I1]. needs some cleanups from [A4] Status: Done ✓A2. Add cairo_mask Difficulty: moderate Status: Done d60 2 a70 22 ✓A4. Make set_source consistent Difficulty: easy Dependencies: needs [A2,A3] to avoid losing functionality, (but we may just live with that as we've now got a circular dependency) Status: Done. ✓A5. Add cairo_clip/fill/stroke_preserve Difficulty: easy Status: Done. ✓A6. Just eliminate a bunch of functions: ✓ cairo_set_target_* ✓ cairo_copy ✓ cairo_surface_set_repeat/matrix/filter ✓ cairo_show_surface Difficulty: trivial Dependencies: eliminating cairo_show_surface depends on [A1] Status: Done. a75 27 ✓A8. cairo_content_t: Difficulty: moderate. It's just going through and examining each use of cairo_format_t, but there are a lot of them. Status: Done. A9. consistent error handling for all objects Difficulty: Easy to implement to get the API right. Hard to test. Status: Done for cairo_t, cairo_path_t, and cairo_pattern_t. Still need to do cairo_font_face_t, cairo_scaled_font_t, and cairo_surface_t. A10. cairo_font_options_t Difficulty: Moderate Status: Owen has done all the hard thinking, and we've got consensus on the API now. Owen's working on a patch. A11. cairo_xlib_surface_create needs to be screen-aware Difficulty: Easy Status: Keith has cooked up a patch with an APi that should be sufficient. It still needs testing on multi-screen X server. A12. cairo_xlib_surface_set_drawable Difficulty: Easy Status: Keith has a patch sitting ready on the list. a77 4 ✓P1. Make pixel-aligned rectangle compositing fast Difficulty: moderate to easy Status: Done. d83 1 a83 1 Status: Now planned as part of "cache lock deadlock" above. @ 1.20 log @2005-07-15 Vladimir Vukicevic * src/cairo-xlib-surface.c: (_cairo_xlib_surface_composite, _recategorize_composite_repeat): Use XCopyArea when possible, for optimization and bug workaround. * test/composite-integer-translate-{source,over,over-repeat}.c: Exercise XCopyArea, XRenderComposite, and XSetTile/XFillRectangle paths for _cairo_xlib_surface_composite @ text @d3 2 a4 2 Get tor to sign off that the win32 stuff is up to snuff glyph path patch reviewed and committed d13 2 a14 2 ✓ Use XCopyArea when possible (integer translation) Otherwise make a copy of the source @ 1.19 log @Add note that glyph measurement performance needs to improve. @ text @d13 1 a13 1 Use XCopyArea when possible (integer translation) @ 1.18 log @ Fix typo (cairo_ft_options_t -> cairo_font_options_t). @ text @d126 3 @ 1.17 log @ * ROADMAP: Add cache lock deadlock problem to roadmap for 0.5.2. * src/cairoint.h: Disable mutex locks, (making the caches non-thread-safe again, just like they were in the last snapshot and before). @ text @d102 1 a102 1 A10. cairo_ft_options_t @ 1.16 log @ ROADMAP: Add recent API change proposals (cairo_ft_options_t, cairo_xlib_surface_create needs to be screen aware, and cairo_xlib_surface_set_drawable). @ text @d16 9 @ 1.15 log @ ROADMAP: Note progress on cairo_meta_surface_t, ARGB text, and group support. @ text @d93 15 @ 1.14 log @ * ROADMAP: Note that the cairo_content_t work is done. * src/cairo-arc.c (_arc_segments_needed): Note that this function is computing an incorrect result. @ text @d27 2 a28 2 Status: krh has a patch that cworth has reviewed. Next version should land. d31 2 d49 4 a52 1 Status: cworth has a posted a preliminary patch (still some open questions) @ 1.13 log @ * CODING_STYLE: Add a missing word. * ROADMAP: Note that the BadMatch bug has been resolved. @ text @d76 1 a76 1 A8. cairo_format_t: d80 1 a80 1 Status: not started, there is a rough plan in TODO @ 1.12 log @ * ROADMAP: Add ARGB text to 1.0 roadmap. @ text @d3 1 a3 1 Get tor to sign off that the win32 stuff is up to snuff d6 1 a6 1 Fix the BadMatch error introduced between 0.5.0 and 0.5.1: d9 4 a12 1 Add a workaround for Render's overlapping source/dest bug @ 1.11 log @ * ROADMAP: Add workaround for Render's overlapping source/dest bug to the 0.5.2 roadmap. @ text @d27 2 @ 1.10 log @ Add link to BadMatch bug. @ text @d9 4 @ 1.9 log @ * ROADMAP: Update ROADMAP with some comments on 0.5.2. * src/cairo.c: Add documentation for cairo_set_source_surface and fix some typos in other documentation blocks. @ text @d6 2 a7 1 Fix the BadMatch error introduced between 0.5.0 and 0.5.1 @ 1.8 log @ * TODO: Add CAIRO_STATUS_DESTROYED to TODO list. * ROADMAP: Note progress on consistent error handling. * src/cairo-surface.c: Fix typo in documentation comment for _cairo_surface_get_current_clip_serial. @ text @d1 4 a4 1 Here are some quick notes as far as a cairo roadmap goes. d6 1 a6 3 See also the TODO file for a different view, (less organized, but often in more detail, particularly for the API Shakeup work in progress). d19 2 a20 1 Status: otaylor has drafted a plan or two on the list a23 1 d37 1 a37 2 Status: cworth sent API proposal to the list (still some unresolved API issues) @ 1.7 log @ * ROADMAP: Add 'consistent error handling' to 1.0 roadmap. (This isn't new, we just forgot to list it here before). * TODO: Big cleanup to remove finished items. Also, split the file up to separate TODO items that affect the API from items that do not. @ text @d74 3 a76 1 Status: otaylor and cworth have both contributed patches. Almost done. @ 1.6 log @ * ROADMAP: Note that cairo_mask, and "just eliminate a bunch of functions are now done". * TODO: Note that all backwards-compatible and backwards-incompatible cahnges for the API Shakeup are now done. Sort "new functionality" of API Shakeup into its own category. @ text @d72 4 @ 1.5 log @2005-04-28 Owen Taylor * TODO, ROADMAP: Add a item about reworking cairo_format_t. @ text @d28 1 a28 1 A2. Add cairo_mask d30 1 a30 1 Status: cworth sent API proposal to the list d50 1 a50 1 A6. Just eliminate a bunch of functions: d52 4 a55 4 cairo_set_target_* cairo_copy cairo_surface_set_repeat/matrix/filter cairo_show_surface d59 1 a59 2 Status: just waiting for a less inconvenient time to break compatibility @ 1.4 log @ * ROADMAP: * TODO: Note that cairo_paint and cairo_clip/fill/stroke_preserve are all done now. @ text @d67 6 @ 1.3 log @ * ROADMAP: Mark a couple of items that are now complete. * test/.cvsignore: * test/Makefile.am: * test/fill-and-stroke-ref.png: * test/fill-and-stroke.c: (draw), (main): Add test case that fills and strokes the same shapes, (in preparation for testing cairo_fill_preserve patch). @ text @d23 1 a23 1 A1. Add cairo_paint d26 1 a26 1 Status: cworth has a patch nearly complete d46 1 a46 1 A5. Add cairo_clip/fill/stroke_preserve d48 1 a48 1 Status: cworth has patch basically complete @ 1.2 log @Indentation changes @ text @d20 2 a21 2 API Issues (more detail in TOO ------------------------------ d39 1 a39 1 A4. Make set_source consistent d44 1 a44 1 Status: cworth has patch basically complete d59 1 a59 1 Status: just waiting for a less inconvient time to break d69 1 a69 1 P1. Make pixel-aligned rectangle compositing fast d71 1 a71 1 Status: none @ 1.1 log @ * ROADMAP: Add ROADMAP file with an initial stab at 1.0 items. @ text @d12 1 a12 1 I1. Fix clipping to be sane d16 1 a16 1 I2. Real PostScript/PDF fallbacks (cairo_meta_surface_t) d23 3 a25 2 A1. Add cairo_paint Difficulty: moderate or moderate to minor after [I1] d28 1 a28 1 A2. Add cairo_mask d32 1 a32 5 A3. Make set_source consistent Difficulty: easy, but needs [A2] to avoid losing functionality Status: cworth has patch basically complete A5. Add cairo_begin/end/get_group d39 8 a46 1 A6. Add cairo_clip/fill/stroke_preserve d50 1 a50 1 A7. Just eliminate a bunch of functions: d55 1 a55 1 cairo_show_surface (depends on [A1]) d58 1 d62 1 a62 1 A8. cairo_surface_mark_dirty d69 1 a69 1 P1. Make pixel-aligned rectangle compositing fast d73 1 a73 1 P2. Generate better trapezoids to go easier on the rasterizer @