summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-07-05add test text-unhinted-metricsAdrian Johnson5-0/+74
Based on bug report in https://lists.cairographics.org/archives/cairo/2016-April/027334.html
2016-07-03pdf: remove unused variableAdrian Johnson1-1/+0
2016-07-03recording: Remove unused functionAdrian Johnson1-15/+0
2016-07-02qt: replaced calls to _cairo_clip_init_copy() by _cairo_clip_copy()Enrico Weigelt, metux IT consult1-1/+1
_cairo_clip_init_copy() was removed with commit b132fae5e843c329d1414d1a65b2e8d66b99852f, but a few calls were still remaining. Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-07-02core: fixed code duplicationEnrico Weigelt, metux IT consult1-16/+34
We have two places where copying from box set to clip is implemented in the same way. Just move that to one function. Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-07-02core: dropped actually unused parameter of _cairo_boxes_to_array()Enrico Weigelt, metux IT consult3-8/+4
When parameter force_allocation is false *and* the box set has exactly one chunk, this chunk is returned directly - w/o copying it. That mode is never used, and it's highly problematic as it's unclear whether we have to free the returnd object or it's still owned by somebody else. Just dropping the useless parameter / corner case to make the function simpler and more robust. Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-07-02core: helper inline for rect->box conversionEnrico Weigelt, metux IT consult2-9/+12
Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-07-02core: fix compiler warningsEnrico Weigelt, metux IT consult4-7/+7
The code correct, but the compiler can't check that and thinks there're uninitialized variables. Perhaps we could rewrite it in a better way, so the compiler can do better (even arch specific) optimizations. Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-06-21win32: gcc 5.4 build fixAdrian Johnson1-0/+3
2016-06-19win32-print: fix unbounded surface assertionAdrian Johnson1-1/+1
https://lists.cairographics.org/archives/cairo/2016-June/027445.html
2016-06-19xlib: Fix double free in _get_image_surface()Uli Schlachter1-1/+3
If XShmGetImage() fails, the code tries to continue with its normal, non-shared-memory path. However, the image variable, which was previously set to NULL, now points to an already-destroyed surface, causing a double-free when the function cleans up after itself (actually, its an assertion failure because the reference count of the surface is zero, but technically this is still a double free). Fix this by setting image=NULL after destroying the surface that this refers to, to make sure this surface will not be destroyed again. While we are here (multiple changes in a single commit are bad...), also fix the cleanup done in bail. In practice, &image->base should be safe when image==NULL, because this just adds some offset to the pointer (the offset here is actually zero, so this doesn't do anything at all). However, the C standard does not require this to be safe, so let's handle this case specially. Note that anything that is fixed by this change is still buggy, because the only reason why XShmGetImage() could fail would be BadDrawable, meaning that the target we draw to does not exist or was already destroyed. This patch will likely just cause X11 errors elsewhere and drawing to (possible) invalid drawables is not supported by cairo anyway. This means that if SHM fails, the following fallback code has a high chance of failing, too. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91967 Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-06-19image: only cache analyzed transparency/color for snapshot surfacesAdrian Johnson1-32/+54
https://lists.cairographics.org/archives/cairo/2016-June/027429.html
2016-06-05Update ref imagesAdrian Johnson522-5/+5
ref images were creating using Debian Jessie 64-bit and latest poppler.
2016-06-05Fix PS record-neg-extents test failureAdrian Johnson7-301/+409
2016-06-05ps: change from ps coordinates to cairo coordinatesAdrian Johnson1-13/+21
2016-06-05pdf: fix record-replay-extend test failuresAdrian Johnson17-50/+81
2016-06-05image: fix record-replay-extend test failuresAdrian Johnson5-24/+45
2016-06-05test: replay record surface with negative extents for each extend modeAdrian Johnson3-0/+228
image fails for repeat, reflect, and pad.
2016-06-05Fix PDF record-neg-extents test failureAdrian Johnson10-206/+284
Modify PDF surface to allow surface extents to have negative x, y. When emitting recording surfaces, set the surface extents to the recording extents.
2016-06-05pdf: change from pdf coordinates to cairo coordinatesAdrian Johnson4-35/+81
When an unbounded recording surface is used multiple times with different extents for each operation we need the XObject containing the recording surface to have the same origin for each operation. This is not possible when the recording surface is converted to PDF coordinates because each operation has different extents resulting in a different origin when the Y-axis is flipped (since the flip matrix depends on the recording surface height which for unbounded surfaces depends on the extents of the operation that paints the recording surface). Switching to cairo coordinates by emitting a Y-axis flip matrix as the first object of each page allows the recording surface to be emitted in cairo coordinates. This results in the same origin for all operations using the recording surface XObject.
2016-06-05Fix test failures when recording surface extents has negative x,yAdrian Johnson2-6/+0
Fixes record-neg-bounded-extents (image only) and recording-ink-extents.
2016-06-05Add recording-ink-extents testAdrian Johnson2-0/+173
bounded_fill fails returning extents origin of (0, 0) instead of (-150, -100)
2016-06-05test: add record-neg-extentsAdrian Johnson3-0/+218
Test case for bug 89232 - painting a recording surface to a pdf/ps surface omits objects on the recording surface with negative coordinates even though the pattern matrix has transformed the objects to within the page extents. The image surface also fails when the recording surface is bounded.
2016-04-16svg2png: fix deprecated warningAdrian Johnson1-6/+33
rsvg_pixbuf_from_file() is deprecated, replaced by rsvg_handle_new_from_file() + rsvg_handle_render_cairo().
2016-04-16pdf2png: fix deprecated warningAdrian Johnson1-0/+2
2016-04-12Use surface_transform in replay_and_create_regionsGuillaume Ayoub4-4/+8
The surface_transform was already used surface_replay_with_clip, as the matrix is obviously needed for the clip. But now, because of the optimization done in commit 09b42c7, it's also needed by replay_and_create_regions: get_target_extents clips the target surface for performance issues, and therefore needs the surface_transform matrix to get the right clipping surface. Signed-off-by: Guillaume Ayoub <guillaume.ayoub@kozea.fr>
2016-03-26Add CAIRO_STATUS_WIN32_GDI_ERROR for GDI errorsAdrian Johnson12-7/+16
2016-03-26Add CAIRO_STATUS_FREETYPE_ERROR for errors returned by libfreetypeAdrian Johnson12-2/+20
2016-03-26Adding missing error status to utilsAdrian Johnson3-1/+13
2016-03-26Add CAIRO_STATUS_PNG_ERROR for errors returned by libpngAdrian Johnson9-4/+19
2016-03-10scaled-font: don't store pointer in hash valueAdrian Johnson1-3/+4
2016-03-05Fix data race in freed_poolWan-Teh Chang4-10/+60
This adds _cairo_atomic_int_get_relaxed and _cairo_atomic_int_set_relaxed which are meant to have a behaviour of relaxed read/writes in C11's memory model. This patch also uses these new function to fix a data race with freed_pool_t's |top| data member. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90318 Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
2016-01-15drm: fix importing of libdrmEnrico Weigelt, metux IT consult1-1/+1
We need to link against libdrm to use its functions. Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-01-13core: some in-code documentationEnrico Weigelt, metux IT consult1-0/+26
Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net>
2016-01-13core: dropped unnecessary local variable in ↵Enrico Weigelt, metux IT consult1-4/+2
_cairo_composite_rectangles_intersect() Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2016-01-13core: reintroduce bot-scan-converter functionsEnrico Weigelt, metux IT consult2-0/+40
These functions have been accidentially removed by commit: 494cfd7eb9d994a5e2024e299986e66a3ef9a562. They're still needed by the DRM backend. (will be used by subsequent patches) Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net> Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> Cc: Uli Schlachter <psychon@znc.in>
2015-12-22core: updated .gitignoreEnrico Weigelt, metux IT consult1-0/+4
Signed-off-by: Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net>
2015-12-22RELEASING: Fix documentation of proper ChangeLog pathBryce Harrington1-2/+2
The releases page includes more than just cairo, so need to be explicit in naming our uploaded Changelog file.
2015-12-111.15.2 releaseBryce Harrington2-3/+94
2015-12-10RELEASING: Clarify snapshot numbering rulesBryce Harrington1-12/+15
2015-12-09RELEASING: Drop inclusion of boilerplate in news messagesBryce Harrington1-5/+1
Looking back at past release announcements, it's been a long time since we included the About Cairo bits. This info is easily located on the website and elsewhere, no need for the redundant data in the announcement too.
2015-12-09RELEASING: Make X.Y.Z versions less ambiguousBryce Harrington1-21/+50
The document uses X.Y.Z to sometimes mean the previous release version, and in other places to mean the upcoming next release version. Identify these more explicitly.
2015-12-09RELEASING: Fix misspelling in last commitBryce Harrington1-4/+4
2015-12-09RELEASING: Whitespace cleanup. Fix inconsistent tabbing.Bryce Harrington1-30/+34
2015-12-09test: Fix use after freesBryce Harrington2-2/+3
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=93152
2015-11-13win32: check if GetTextMetrics failedPatrick Fritzsch1-2/+8
http://lists.cairographics.org/archives/cairo/2015-November/026544.html
2015-11-06xlib: fix mixing xcb & xlib callsMarc-André Lureau1-4/+4
NextRequest is a macro that doesn't mix well with xcb, since dpy->request is not updated. Instead use XNextRequest() that was fixed to do the right thing with xcb in libX11 commit: http://cgit.freedesktop.org/xorg/lib/libX11/commit/?id=7f8f9a36ef901f31279c385caf960a22daeb33fe This may solve application X errors when a shmdt() is called by cairo before the Attach request is processed. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-11-06Fix cairo-xlib-xcb compilationUli Schlachter1-1/+2
This is broken since: commit b1192beac7c5b56a8ff356d20af5ebfb65404109 Author: Adrian Johnson <ajohnson@redneon.com> Date: Mon Sep 21 21:35:05 2015 +0930 Don't cull very thin lines on vector surfaces On vector surfaces, use a minimum line width when calculating extents. Bug 77298 Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-10-29RELEASING: Doc handling devel versions for micro vs minor releasesBryce Harrington1-2/+8
2015-10-29Bump version for new development tree, 1.15.1Bryce Harrington1-2/+2