AgeCommit message (Collapse)AuthorFilesLines
2015-06-19XXX Enable color glyphscolor-emojiBehdad Esfahbod1-1/+1
2015-06-19HACK Disable use of pixman glyph API (which is not updated to support color ↵Behdad Esfahbod1-1/+1
2015-06-19HACK Route xlib glyph compositing through fallback path to get color emoji ↵Behdad Esfahbod1-1/+1
2015-06-19WIP Adjust image compositor for color emoji bitmap glyphsBehdad Esfahbod1-8/+19
These are non-component-alpha, and should be used as src, not mask.
2015-06-18pattern: allow for a floating one pixel rounded difference.Alban Browaeys1-5/+5
That is if the difference between the origin and the end is bigger than .5 round up regardless of the coordinates. Round the difference of the floats instead of rounding the floats then diff them. Fixes: Reviewed-by: Bryce Harrington <>
2015-06-18cairo-script: Rename struct member to avoid name collision on AIXBryce Harrington2-38/+38
On AIX, the token jmpbuf is a pre-processor macro. cairo-script-scanner.c includes a private struct with a member named jmpbuf which gets renamed to __jmpbuf when AIX's sys/context.h has been included. While judicious ordering of includes might kludge around this problem (by causing all references to .jmpbuf to become .__jmpbuf), it's better to simply select a new name for the struct member that won't suffer the collision. Fixes: Signed-off-by: Bryce Harrington <> Reviewed-by: Chris Wilson <>
2015-06-18cairo-script: Prefer cairo from local treeBryce Harrington5-10/+9
Use quoted includes rather than bracketed, to prefer linking to the in-tree cairo in preference to the system cairo. Signed-off-by: Bryce Harrington <> Reviewed-by: Chris Wilson <>
2015-06-18cairo-script: Cleanup boilerplate header for consistencyBryce Harrington1-2/+1
Signed-off-by: Bryce Harrington <> Reviewed-by: Chris Wilson <>
2015-06-18cairo-script: Add missing copyright and boilerplateBryce Harrington4-0/+132
Chris wrote all of the cairo script stuff. I'm making a guess about the copyright date. Reviewed-by: Chris Wilson <> Signed-off-by: Bryce Harrington <>
2015-06-18cairo-script: Always include config.h first thingBryce Harrington11-0/+26
Reviewed-by: Chris Wilson <> Signed-off-by: Bryce Harrington <>
2015-06-05Fix cairo_get_locale_decimal_point() on AndroidFredrik Fornwall1-1/+1
2015-06-04polygon-intersection: Delete misleading comments and dead-codeMassimo Valentini1-58/+2
den_det is positive because intersect_lines is called only after _slope_compare returned > 0 and slope_compare is returning the sign of den_det The quadratic-time intersection finder is #if 0-ed out in src/cairo-bentley-ottman.c, but is unusable even there since the second commit to that file. Fixes: Reviewed-by: Bryce Harrington <>
2015-06-04polygon-intersection: Try not to invoke undefined behaviourMassimo Valentini1-2/+2
Optimizing compilers aggressively remove code that is executed only after an undefined behaviour occurred. Also, the difference of two (non char) pointers hides an integer division that, because the divisor is known at compile time, is transformed into a multiplication by a pseudo-reciprocal, and in this case the difference is not always a multiple of the divisor, resulting in an invalid comparison predicate. Fixes: Reviewed-by: Bryce Harrington <>
2015-06-04polygon-intersection: Include approximation in intersection pointsMassimo Valentini1-72/+67
In Hobby's paper it is proved that INTERSECTION events can be processed in any order by ignoring intersections between edges non-adjacent in the active edges list. But with respect to START/STOP events they must be processed in order. Because START/STOP events have always exact y, it is sufficient to know whether an integer y intersection is a default/excess approximation of the exact to properly sort events. Fixes: Reviewed-by: Bryce Harrington <>
2015-06-04polygon-intersection: Do not discard intersection exactly at top edgeMassimo Valentini1-1/+1
Fixes: Reviewed-by: Bryce Harrington <>
2015-06-04cairo-script: Improve buffer length checkBryce Harrington1-1/+2
Quells the following warning: cairo-script-scanner.c: In function ‘_translate_string’: cairo-script-scanner.c:1623:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (buf_len <= 8 + 2*string->len) { ^
2015-06-04build: Show all disabled features in cairo-features.hJulien Isorce1-1/+1
Even features which are disabled by default should appear in cairo-features.h. Bugzilla: (Patch approved by Behdad Esfahbod in bug tracker.) Reviewed-by: Bryce Harrington <>
2015-06-04Support new-style __atomic_* primitivesNathan Froyd2-0/+102
Recent versions of GCC/clang feature a new set of compiler intrinsics for performing atomic operations, motivated by the operations needed to support the C++11 memory model. These intrinsics are more flexible than the old __sync_* intrinstics and offer efficient support for atomic load and store operations. Having the load appear atomic to the compiler is particular important for tools like ThreadSanitizer so they don't report false positives on memory operations that we intend to be atomic. Patch from Nathan Froyd <>
2015-05-21cff: ensure glyph widths are positive when font matrix yy is negativeAdrian Johnson1-2/+2
Bug 90538
2015-05-18Manually transpose the matrix in _cairo_gl_shader_bind_matrix()Zan Dobersek1-4/+4
To maintain compatibility with OpenGL ES 2.0, the matrix in _cairo_gl_shader_bind_matrix() should be manually transposed, and GL_FALSE passed as the transpose argument to the glUniformMatrix3fv() call as it is the only valid value for that parameter in OpenGL ES 2.0. Reviewed-by: Bryce Harrington <> Acked-by: "Henry (Yu) Song" <>
2015-04-24Fix broken canvas text font size in InkscapeBryce Harrington1-1/+1
An earlier fix to bug 84324 added a regression in the font size of canvas text in Inkscape when compiled with the Quartz backend. Patch from Andrea Canciani Fixes: Reviewed-by: Bryce Harrington <>
2015-04-23Remove debug printf; ouch!Behdad Esfahbod1-1/+0
2015-04-21Oops, fixup previous commitBehdad Esfahbod2-0/+8
2015-04-21[ft] Return CAIRO_STATUS_FILE_NOT_FOUND if font file can't be openedBehdad Esfahbod1-15/+35
A common source of error when people are setting up pango on a new device is when font files don't have the right permissions and cannot be opened. Cairo was returning out-of-memory before, making the Pango error message useless. With this change, cairo will return file-not-found, and pango prints that out. It's still not ideal; a ENOACCESS equivalent would have been better.
2015-04-20Avoid appending an empty slot to an user data array when user_data is NULL.江頭幸路1-0/+3
Otherwise, calling cairo_set_user_data(cr, key, 0, 0) many times causes a long user data array, almost all of whose slots are empty. It leads to unnecessarily much memory consumption and long execution time of cairo_set_user_data(cr, key, 0, 0) and cairo_get_user_data(cr, key) after it. This issue probably happens since the commit Reviewed-by: Bryce Harrington <>
2015-04-16test: Correct bug number in clip-complex-bug61592Andrea Canciani2-1/+1
The filename of the C source file is correct, but the test name (both as function name and as reference image name) has a typo in it. Related to
2015-04-13win32: Add a win32 boilerplate that uses a real windowРуслан Ижбулатов1-14/+228
This way it uses the codepath for cairo_win32_surface_create_with_format(), instead of the cairo_win32_surface_create_with_dib(). Without the recording tests (which terminate the testsuite) the testsuite results for win32 are: 284 Passed, 167 Failed [1 crashed, 9 expected], 23 Skipped win32 (rgb24): 1 crashed! win32 (rgb24): 17 error win32 (rgb24): 155 failed win32 (argb32): 1 crashed! win32 (argb32): 17 error win32 (argb32): 68 failed win32-window-color (rgb24): 1 crashed! win32-window-color (rgb24): 17 error win32-window-color (rgb24): 148 failed win32-window-coloralpha (argb32): 1 crashed! win32-window-coloralpha (argb32): 17 error win32-window-coloralpha (argb32): 66 failed Reviewed-by: Bryce Harrington <>
2015-04-13win32: Add cairo API to set up a Win32 surface for an HDC with an alpha channel.Руслан Ижбулатов2-16/+56
Signed-off-by: Руслан Ижбулатов <> Reviewed-by: Bryce Harrington <>
2015-04-08test: Fix coverage-intersecting-triangles referenceAndrea Canciani3-1/+1
Commit 4e3ef57bc892b0b046c486390adc7164a1de64de added coverage-intersecting-triangles with an incorrect reference and generator. The test checks the rasterization of two overlapping triangles in the following position: . . |\ /| | X | |/ \| .---. Since the triangles have both vertical and horizontal sides of size x/WIDTH, the expected coverage is 3/4 (75%) of (x/WIDTH)^2. The original code, instead, was checking for a coverage of 0.75*x/WIDTH, as if one of the sides was always 1 unit long. The image and xlib backends still suffer from some jitter, caused by the approximation of the actual coverage by means of sampling. For this reason their references are still considered XFAIL, even though their result now looks mostly consistent with the expected reference.
2015-04-04Fix spellings descibed, indicies, stangeBryce Harrington3-3/+3
2015-03-18NEWS: Sp. fixBryce Harrington1-4/+4
2015-03-18surface: Clarify flush documentationBryce Harrington1-6/+6
2015-03-13Harden make-cairo-test-constructors.shAndrea Canciani2-2/+4
The script executes several commands without checking their success. This can lead to undetected errors, like those fixed in 86fad78fcd2bf987249890aea4eabcce02a58f45. The script now exits with an error status if no file is input. Moreover, it sets the '-e' flag, so that if a command fails, the whole script is immediately terminated with an error. In the, the script result is now checked and the target file is removed upon error. This ensures that the 'cairo-test-constructors.c' target completes succesfully only if no error occurred. Reviewed-by: Bryce Harrington <>
2015-03-13Start 1.14.3 developmentBryce Harrington1-1/+1
2015-03-11doc: add index of new symbols in 1.14Adrian Johnson1-0/+3
2015-03-10RELEASING: Update contactsBryce Harrington1-12/+8
Add a CC to the cairo@ list itself. Drop updating of the GNOME dependencies page; this appears to have not been updated since 2008.
2015-03-10version: bump for cairo-1.14.2 release1.14.2Bryce Harrington1-1/+1
2015-03-10KNOWN_ISSUES: Restore known issues file as a stubBryce Harrington1-0/+3
Apparently distcheck requires this file be present.
2015-03-10NEWS: Note about the OS X supportBryce Harrington1-0/+5
2015-03-10Update README with new minimum MacOSX requirementsAndrea Canciani1-1/+1
Since 70cc8f250b5669e757b4f044571ba0f71e3dea9e the quartz backend is using some APIs that are not available on MacOSX 10.4 directly (i.e. without detecting their availability through dynamic linking). This means that the quartz backend does not work anymore on MacOSX 10.4 and that the 10.5 SDK (or newer) is needed to build.
2015-03-10On MacOSX, the sed utility errors out when parsing non-UTF8Bryce Harrington6-7/+7
files. Because of this, the generated cairo-test-constructor only contained a few tests and the test suite was thus incomplete. Original patch by Andrea Canciani <>
2015-03-10Update KNOWN_ISSUES documentationAndrea Canciani1-10/+0
The bug mentioned in KNOWN_ISSUES was fixed in 2b3d8de11a536d668084ea6d2bf295da1d1cdc11, but the documentation was not updated. Moreover, the header of KNOWN_ISSUES was 1.10-specific. Reviewed-by: Bryce Harrington <>
2015-03-10NEWS: Finish filling in changesBryce Harrington1-2/+25
2015-03-07NEWS: Update for changes through Nov 2014Bryce Harrington1-0/+47
2015-03-06HACKING: Add link to git tutorial and wordsmith a bitBryce Harrington1-10/+8
2015-03-06csi-trace: Add --version and --help args to utilityBryce Harrington1-1/+9
2015-03-06Revert "xlib: Remove queued event from _XReadEvents"Bryce Harrington1-5/+0
This reverts commit e7fc8f405beeeb1048f69fe22923170a137b805e.
2015-03-06git-ignore: Add build's test-driverBryce Harrington1-0/+2
2015-03-06doc: Drop extraneous para'sBryce Harrington1-6/+6
These may have been required in the past, but just trip up distcheck today. The generated docs still look fine.
2015-03-06gitignore: logs, manualsBryce Harrington1-2/+2