cairo/src
Carl Worth 29670d3766 Add a content value to solid patterns
This allows for the surface acquired from the pattern to have the
same content. In particular, in a case such as cairo_paint_with_alpha
we can now acquire an A8 mask surface instead of an ARGB32 mask
surface which can be rendered much more efficiently. This results
in a 4x speedup when using the OVER operator with the recently
added paint-with-alpha test:

Speedups
========
image-rgb  paint-with-alpha_image_rgb_over-256 2.25 -> 0.60: 4.45x speedup
███▌

It does slowdown the same test when using the SOURCE operator, but
I don't think we care. Performing SOURCE with a mask is already a very
slow operation, (hitting compositeGeneral), so the slowdown here is
likely from having to convert from A8 back to ARGB32 before the
generalized compositing. So if someone cares about this slowdown,
(though SOURCE with cairo_paint_with_alpha doesn't seem extremely
useful), they will probably be motivated enough to contribute a
customized compositing function to replace compositeGeneral in which
case this slowdown should go away:

image-rgba paint-with-alpha_image_rgb_source-256 3.84 -> 8.86%: 1.94x slowdown
█
2007-04-25 11:09:31 -07:00
..
.gitignore Update .gitignore 2007-04-16 15:08:54 +01:00
cairo-analysis-surface-private.h cairo_analysis_surface: Rename region_[un]supported() to get_[un]supported(). 2006-02-27 14:58:51 -08:00
cairo-analysis-surface.c [paginated] Move cairo_paginated_surface_t to cairo-paginated-surface-private.h 2007-04-21 02:43:28 -04:00
cairo-arc-private.h Add cairo_private to several function prototypes that were missing it. 2005-08-09 13:01:14 +00:00
cairo-arc.c Rename ARRAY_LEN to ARRAY_LENGTH 2007-04-10 10:14:49 -07:00
cairo-array.c Spell check the docs 2007-01-07 02:08:15 -05:00
cairo-atsui-font.c _cairo_scaled_font_init: Detect an invalid matrix and return an error. 2007-04-11 01:18:08 -07:00
cairo-atsui.h Bring the ATSUI backend up to date wrt the new font backend changes. Also, add cairo_atsui_font_face_create_for_atsu_font_id which takes an ATSUFontID and returns a cairo_font_face_t. 2005-09-30 08:31:36 +00:00
cairo-backend.pc.in Fix Name tag in backend .pc files to include "cairo-". 2006-07-13 14:33:41 -04:00
cairo-base85-stream.c Make sure all nil objects start with _cairo_ 2007-04-03 19:26:18 -04:00
cairo-bentley-ottmann.c Fix cairo_traps_t status handling 2007-04-10 12:06:09 -07:00
cairo-beos-surface.cpp [BeOS] Remove old-style mutex initialization cruft 2007-04-22 16:05:25 -04:00
cairo-beos.h Remove initial, final, and duplicate blank lines. 2006-06-06 15:50:33 -07:00
cairo-cache-private.h Move cairo_cache_t to cairo-types-private.h 2007-04-21 03:18:30 -04:00
cairo-cache.c Move cairo_cache_t to cairo-types-private.h 2007-04-21 03:18:30 -04:00
cairo-cff-subset.c Add CFF CID Fallback 2007-04-20 22:30:55 +09:30
cairo-clip-private.h Make _cairo_clip_reset void 2007-04-10 13:28:48 -07:00
cairo-clip.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-color.c Cache solid patterns 2007-03-20 18:21:53 -04:00
cairo-debug.c Cache solid patterns 2007-03-20 18:21:53 -04:00
cairo-deflate-stream.c Make sure all nil objects start with _cairo_ 2007-04-03 19:26:18 -04:00
cairo-deprecated.h Move the REPLACED/DEPRECATED_BY macros from cairo.h to cairo-deprecated.h 2006-09-11 11:12:47 -07:00
cairo-directfb-surface.c [directfb] Silence compiler warning 2007-04-20 00:52:03 -04:00
cairo-directfb.h Fixed compile error from missing directfb.h include 2007-04-11 21:42:57 -07:00
cairo-fixed.c Change _cairo_fixed_from_double to use the "magic number" technique 2006-11-06 09:37:40 -08:00
cairo-font-face.c Rename cairo-font.c to cairo-font-face.c 2007-04-18 18:24:09 -04:00
cairo-font-options.c Make sure all nil objects start with _cairo_ 2007-04-03 19:26:18 -04:00
cairo-freelist-private.h [cairo-freelist] Remove redundant struct declarations 2007-04-19 16:07:15 -04:00
cairo-freelist.c [src] Make sure all source files #include "cairoint.h" as their first include 2007-04-03 20:28:11 -04:00
cairo-ft-font.c Add missing error check of return value of _cairo_path_fixed_close_path 2007-04-10 13:59:42 -07:00
cairo-ft-private.h slim_hidden_proto: Move smeicolon from definition to use for consistency and legibility 2006-09-05 17:22:07 -07:00
cairo-ft.h Give cairo_public an empty definition by default. 2005-09-07 16:31:22 +00:00
cairo-glitz-private.h [slim] hide cairo_glitz_surface_create() (#8551) 2006-10-08 17:07:17 -04:00
cairo-glitz-surface.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-glitz.h Give cairo_public an empty definition by default. 2005-09-07 16:31:22 +00:00
cairo-gstate-private.h Remove extraneous whitespace from "blank" lines. 2006-06-06 15:25:49 -07:00
cairo-gstate.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-hash-private.h Move cairo_hash_entry_t to cairo-types-private.h 2007-04-21 03:35:07 -04:00
cairo-hash.c Rename ARRAY_LEN to ARRAY_LENGTH 2007-04-10 10:14:49 -07:00
cairo-hull.c Remove trailing whitespace from lines that look like comments. 2006-06-06 15:35:48 -07:00
cairo-image-surface.c [image] Set hint-metrics on in default font options 2007-04-12 18:49:38 -04:00
cairo-lzw.c Spell check the docs 2007-01-07 02:08:15 -05:00
cairo-matrix.c Make _cairo_matrix_compute_scale_factors void 2007-04-09 17:15:33 -07:00
cairo-meta-surface-private.h Fix some signed/unsigned comparison warnings that cropped up during the warnings-cleanup branch 2006-08-07 15:22:49 -07:00
cairo-meta-surface.c Make _cairo_clip_reset void 2007-04-10 13:28:48 -07:00
cairo-mutex-list-private.h [cairo-mutex] Err on unintended inclusion of cairo-mutex-list-private.h 2007-04-19 16:07:15 -04:00
cairo-mutex-private.h [cairo-mutex] Add a poor man's mutex implementation in case of CAIRO_NO_MUTEX 2007-04-22 16:13:33 -04:00
cairo-mutex.c [cairo-mutex] Define and use CAIRO_MUTEX_USE_GENERIC_INITIALIZATION 2007-04-19 16:21:13 -04:00
cairo-operator.c Remove extraneous whitespace from "blank" lines. 2006-06-06 15:25:49 -07:00
cairo-os2-private.h OS/2 backend files 2006-09-15 11:18:14 +02:00
cairo-os2-surface.c Introduce CAIRO_MUTEX_FINALIZE as counter-part for CAIRO_MUTEX_INITIALIZE 2007-04-19 13:38:26 +02:00
cairo-os2.h [directfb,os2] #error if the backend is not compiled in, like others do 2007-03-13 05:14:18 -04:00
cairo-output-stream-private.h [pdf] Move cairo_pdf_surface_t to cairo-pdf-surface-private.h 2007-04-21 02:10:34 -04:00
cairo-output-stream.c Make cairo-output-stream.c accept variable width printf fields 2007-04-20 22:43:37 +09:30
cairo-paginated-private.h [paginated] Move cairo_paginated_surface_t to cairo-paginated-surface-private.h 2007-04-21 02:43:28 -04:00
cairo-paginated-surface-private.h [paginated] Include cairo-surface-private.h 2007-04-21 03:04:03 -04:00
cairo-paginated-surface.c [paginated] Move cairo_paginated_surface_t to cairo-paginated-surface-private.h 2007-04-21 02:43:28 -04:00
cairo-path-bounds.c Make _cairo_path_bounder_add_point void 2007-04-09 17:16:30 -07:00
cairo-path-fill.c Add a status field to cairo_polygon_t 2007-04-10 10:45:15 -07:00
cairo-path-fixed-private.h [cairo-path-fixed] Fine-tune size of buffer 2007-03-13 05:14:18 -04:00
cairo-path-fixed.c [src] Make sure all source files #include "cairoint.h" as their first include 2007-04-03 20:28:11 -04:00
cairo-path-private.h Rename remaining cairo_path_data to cairo_path in function names, etc. 2006-12-19 13:10:14 -08:00
cairo-path-stroke.c Add a status field to cairo_polygon_t 2007-04-10 10:45:15 -07:00
cairo-path.c Cleanup multi-line if condition 2007-04-10 10:14:48 -07:00
cairo-pattern.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-pdf-surface-private.h [pdf] Fix header file header! 2007-04-21 02:51:10 -04:00
cairo-pdf-surface.c [ps/pdf/svg] Fix minor coding style issue 2007-04-21 02:51:04 -04:00
cairo-pdf.h cairo-pdf.h: Add missing cairo_public decorators 2006-09-18 13:32:00 -04:00
cairo-pen.c Add a status field to cairo_polygon_t 2007-04-10 10:45:15 -07:00
cairo-png.c Merge branch 'master' of git+ssh://pmw@git.freedesktop.org/git/cairo 2007-04-23 23:18:05 +02:00
cairo-polygon.c Add a status field to cairo_polygon_t 2007-04-10 10:45:15 -07:00
cairo-private.h [cairo_t] Embed a gstate into cairo_t 2007-03-13 05:14:19 -04:00
cairo-ps-surface-private.h [ps] Get rid of _cairo_ps_test_force_fallbacks 2007-04-21 02:51:22 -04:00
cairo-ps-surface.c [ps] Get rid of _cairo_ps_test_force_fallbacks 2007-04-21 02:51:22 -04:00
cairo-ps.h New API: Replace cairo_{ps,pdf,svg}_set_dpi with new cairo_surface_set_fallback_resolution. 2006-06-09 16:52:17 -07:00
cairo-quartz-private.h [quartz] rename remaining nquartz symbols to quartz. 2007-03-06 23:24:33 +00:00
cairo-quartz-surface.c [quartz] fix floating point precision issue (#10531) 2007-04-06 00:00:33 +01:00
cairo-quartz.h [quartz] Remove (disabled) support for rendering via AGL/CGGL 2007-02-20 16:18:27 -08:00
cairo-rectangle.c Fix bogus cairo_rectangle_fixed_t to be cairo_rectangle_int16_t. 2006-06-06 16:54:03 -07:00
cairo-region.c [pixman-region] Separate pixman_region_init 2007-04-08 21:49:46 -04:00
cairo-scaled-font-private.h [scaled-font] Get rid of _cairo_scaled_font_test_set_max_glyphs_cached_per_font 2007-04-21 03:43:04 -04:00
cairo-scaled-font-subsets-private.h [pdf] Move cairo_pdf_surface_t to cairo-pdf-surface-private.h 2007-04-21 02:10:34 -04:00
cairo-scaled-font-subsets.c Ensure _cairo_scaled_font_subsets_map_glyph() returns correct values 2007-04-21 00:26:25 +09:30
cairo-scaled-font.c [scaled-font] Get rid of _cairo_scaled_font_test_set_max_glyphs_cached_per_font 2007-04-21 03:43:04 -04:00
cairo-skiplist-private.h [cairo-skiplist] Use one random number per insertion, instead of two 2007-04-09 19:39:50 -04:00
cairo-skiplist.c Merge branch 'warn-unused-result' into cairo 2007-04-11 13:15:57 -07:00
cairo-slope.c [cairo-slope] Make comparison stable if both vectors are zero 2007-03-13 05:14:20 -04:00
cairo-spline.c Rename ARRAY_LEN to ARRAY_LENGTH 2007-04-10 10:14:49 -07:00
cairo-stroke-style.c Remove initial, final, and duplicate blank lines. 2006-06-06 15:50:33 -07:00
cairo-surface-fallback-private.h Add/remove const to cairo_glyph_t* arguments consistently 2006-12-11 01:39:51 -05:00
cairo-surface-fallback.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-surface-private.h [cairo-surface] Move cairo_surface_t struct in cairo-surface-private.h 2007-04-21 02:08:37 -04:00
cairo-surface.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-svg-surface-private.h [svg] Get rid of _cairo_svg_test_force_fallbacks 2007-04-21 03:08:26 -04:00
cairo-svg-surface.c [svg] Get rid of _cairo_svg_test_force_fallbacks 2007-04-21 03:08:26 -04:00
cairo-svg.h [SVG] Define enum _cairo_svg_version. 2006-11-21 00:22:19 -05:00
cairo-traps.c Fix mis-indented _cairo_traps_init_box 2007-04-10 12:13:10 -07:00
cairo-truetype-subset-private.h TrueType: fix bug #9998 - build error with gcc 2.95 2007-02-17 10:55:14 +10:30
cairo-truetype-subset.c Add support for creating CID/composite font subsets 2007-04-20 22:29:41 +09:30
cairo-type1-fallback.c Add CFF CID Fallback 2007-04-20 22:30:55 +09:30
cairo-type1-private.h [Type1] Add cairo-type1-private.h that Type1 fallback and subset code share 2007-03-07 16:02:08 -05:00
cairo-type1-subset.c Exclude Type1 fonts from CID subsets 2007-04-20 22:45:12 +09:30
cairo-types-private.h Move a couple typedefs to cairo-types-private.h 2007-04-21 03:38:24 -04:00
cairo-unicode.c [src] Make sure all source files #include "cairoint.h" as their first include 2007-04-03 20:28:11 -04:00
cairo-wideint-private.h Define INT32 limits on MSVC as noticed by Hans-Jürgen Schäler 2007-04-19 14:54:30 +02:00
cairo-wideint.c cairo-wideint: Fix to eliminate comparison of signed and unsigned values 2007-01-20 02:01:29 -08:00
cairo-win32-font.c _cairo_scaled_font_init: Detect an invalid matrix and return an error. 2007-04-11 01:18:08 -07:00
cairo-win32-private.h Initialize mutexes at central location. 2007-03-20 10:11:14 +01:00
cairo-win32-surface.c Reintroduce DllMain as deterministic mutex initialization path 2007-04-19 13:38:26 +02:00
cairo-win32.h Remove WINVER from public header file 2007-01-04 16:46:22 +01:00
cairo-xcb-surface.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-xcb-xrender.h XCB: Move slim_hidden_def to cairo-xcb-surface.c, not cairo-xcb-xrender.h. 2006-10-16 11:44:08 -07:00
cairo-xcb.h Update XCB names for XCB 1.0 RC2 release. 2006-10-11 21:52:49 -07:00
cairo-xlib-private.h [cairo-surface] Move cairo_surface_t struct in cairo-surface-private.h 2007-04-21 02:08:37 -04:00
cairo-xlib-screen.c [xlib] Turn metrics-hinting on by default 2007-04-12 18:49:38 -04:00
cairo-xlib-surface-private.h [cairo-surface] Move cairo_surface_t struct in cairo-surface-private.h 2007-04-21 02:08:37 -04:00
cairo-xlib-surface.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo-xlib-xrender.h Remove initial, final, and duplicate blank lines. 2006-06-06 15:50:33 -07:00
cairo-xlib.h Surface size getters for xlib 2006-06-25 11:23:43 +02:00
cairo.c Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
cairo.h Revert cairo_public_warn addition to cairo.h 2007-04-12 13:46:03 -07:00
cairo.pc.in Improve backend .pc files generation: 2006-07-12 04:27:55 -04:00
cairoint.h Add a content value to solid patterns 2007-04-25 11:09:31 -07:00
check-cairoint.sh [pixman/src/check-config.sh] Test that all source files #include <config.h> 2007-04-03 20:30:30 -04:00
check-def.sh [check-def.sh] Do not allow _cairo_.*_test_ symbols anymore 2007-04-21 03:44:53 -04:00
check-headers.sh Add attribute(warn_unused_result) 2007-04-09 15:01:58 +01:00
check-plt.sh [x86-64] check-plt.sh: match on JU?MP_SLO as on x86-64 "SLOT" is truncated 2006-09-06 16:39:18 -04:00
Makefile.am [scaled-font] Get rid of _cairo_scaled_font_test_set_max_glyphs_cached_per_font 2007-04-21 03:43:04 -04:00
Makefile.win32 Rename cairo-font.c to cairo-font-face.c 2007-04-18 18:24:09 -04:00
test-fallback-surface.c Implement clone_surface for test-fallback-surface. 2007-04-09 16:50:20 -07:00
test-fallback-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00
test-meta-surface.c test-meta-surface.c: Fix memory leak on error recovery path. 2007-04-10 16:32:09 -07:00
test-meta-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00
test-paginated-surface.c [paginated] Move cairo_paginated_surface_t to cairo-paginated-surface-private.h 2007-04-21 02:43:28 -04:00
test-paginated-surface.h [test-surfaces] Prefix public symbols with _cairo 2007-03-13 05:14:19 -04:00