Commit graph

11296 commits

Author SHA1 Message Date
Bryce Harrington
0986ae4dee test: Fix use after frees
Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=93152
2015-12-09 11:30:34 -08:00
Patrick Fritzsch
ad99e1b9d8 win32: check if GetTextMetrics failed
http://lists.cairographics.org/archives/cairo/2015-November/026544.html
2015-11-13 21:27:34 +10:30
Marc-André Lureau
98d01cd119 xlib: fix mixing xcb & xlib calls
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-06 21:00:48 +01:00
Uli Schlachter
bf41cc397f Fix cairo-xlib-xcb compilation
This is broken since:

commit b1192beac7
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-11-06 20:50:47 +01:00
Bryce Harrington
fc689d7d35 RELEASING: Doc handling devel versions for micro vs minor releases 2015-10-29 18:21:34 -07:00
Bryce Harrington
bc4271a139 Bump version for new development tree, 1.15.1 2015-10-29 18:17:39 -07:00
Bryce Harrington
e03ab054c1 RELEASING: Doc what's required to properly undo a publish 2015-10-29 11:57:32 -07:00
Bryce Harrington
62ceb0abd9 RELEASING: Note how to upload the changelog 2015-10-28 22:23:53 -07:00
Bryce Harrington
247ef2bd63 NEWS: Update for 1.14.4 release 2015-10-28 22:22:31 -07:00
Bryce Harrington
3fd993a2b1 WIP news and release 2015-10-27 13:53:55 -07:00
Bryce Harrington
d7371acfe5 1.14.4 release 2015-10-27 11:53:14 -07:00
Bryce Harrington
04a40d2ff3 NEWS: Update to cover changes to date 2015-10-27 11:10:23 -07:00
Adrian Johnson
481e5986f9 Compile fix 2015-10-17 22:46:23 +10:30
Adrian Johnson
2d026bd2cf win32-print: support subsurface recording patterns 2015-10-17 22:42:37 +10:30
Adrian Johnson
b7d864e8c1 Compile fix 2015-10-17 22:38:50 +10:30
Adrian Johnson
aa1323f04c Fix some surfaces missed in b1192bea 2015-10-17 22:02:11 +10:30
Adrian Johnson
30eb1b0e97 Add test case for thin lines
Bug 77298
2015-10-17 18:39:19 +10:30
Adrian Johnson
b1192beac7 Don't cull very thin lines on vector surfaces
On vector surfaces, use a minimum line width when calculating extents.

Bug 77298
2015-10-17 18:39:18 +10:30
Adrian Johnson
6656cafebf win32-print: support raster_source patterns 2015-10-17 18:33:36 +10:30
Adrian Johnson
9fcb42f7fe win32-print: fix warnings 2015-10-17 18:32:59 +10:30
Adrian Johnson
2c45fdfc15 win32-print: Fix the page extents
As the page size can be changed between pages, set the extents in
_start_page. The extents are invalidated in _show_page since the
page size on the DC may be changed after this call. The only thing that
uses the extents between _show_page and _start_page (and before the first
_start_page) is the creation of the recording surface in the paginated
surface. In this case, when the paginated surface can't get the extents,
it will create an unbounded recording surface.

The extents x,y is always set to 0 to prevent the replay from translating
the page.
2015-10-17 18:32:57 +10:30
Adrian Johnson
094f0e0fa0 pdf: fix subsurface recordings 2015-10-17 18:16:33 +10:30
Adrian Johnson
2215b4e0c0 ps: fix subsurface recordings 2015-10-17 18:16:32 +10:30
Adrian Johnson
6952e03262 ps: fix raster source patterns 2015-10-17 18:16:22 +10:30
Bryce Harrington
e294ca19f2 NEWS: Whitespace cleanup 2015-10-14 18:13:42 -07:00
Bryce Harrington
7cc77d1cee build: Use memory barriers for ARM
ARM has much weaker memory ordering guarantees than x86 by default, and
needs the memory barriers.  A similar fix exists in the Skia codebase.
Fix suggested by Nathan Froyd.

Fixes: FDO #90302

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Acked-by: "Henry (Yu) Song" <henry.song@samsung.com>
2015-10-14 18:13:42 -07:00
Uli Schlachter
25a55822b4 xcb: Fix _put_image_boxes() if no SHM is available
This function tries to use _cairo_xcb_connection_put_image() to do the actual
work. However, that function can only be used for images with "native" stride.
If we only want to upload a rectangle from within an image, the function
_cairo_xcb_connection_put_subimage() has to be used. This function makes sure
that the correct information is sent to the X11 server.

No unit test for this, because we currently do not test the !SHM case
automatically. Perhaps we should?

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-10-14 14:26:47 +02:00
Uli Schlachter
d31dc73f9b xcb: Fix _put_shm_image_boxes if no SHM available
This function always returned CAIRO_INT_STATUS_SUCCESS, even if it didn't do
anything. This commit makes the function return CAIRO_INT_STATUS_UNSUPPORTED
instead.

No unit test for this, because we currently do not test the !SHM case
automatically. Perhaps we should?

Signed-off-by: Uli Schlachter <psychon@znc.in>
2015-10-14 14:26:32 +02:00
Adrian Johnson
0537479bd1 ps: merge emit_recording surface and emit_recording_subsurface into one function
Most of each function was identical.
2015-10-05 16:10:02 +10:30
Rodrigo Rivas Costa
e5d4f520aa win32-print: fix transparent images have black background
Bug 91835
2015-09-30 23:53:23 +09:30
Adrian Johnson
495362279b scaled-font-subsets: if glyph 0 used for rendering, remap to different index
Some broken pdfs use glyph 0 in embedded fonts for rendering instead of .notdef.
The cmap we use for embedding latin fonts does not allow rendering glyph 0. Ensure
if glyph 0 is used, it is mapped to a non 0 glyph in the subset.

Bug 89082
2015-09-27 09:34:37 +09:30
Bryce Harrington
6f7a9b4f03 Ensure null-terminated result from strncpy() 2015-09-10 11:18:08 -07:00
Adrian Johnson
b353d1f1b1 cff: opentype fonts always use gid to lookup glyph
Bug 91902
2015-09-07 22:20:08 +09:30
Sahil Vij
f6c46d9473 gl: Fix bug in _cairo_gl_pattern_texture_setup()
The memory allocated to "image" at line 298 is not freed before moving to label fail at line 305 and 314.
This patch takes care of this memory leak in above mentioned cases.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91537
Signed-off-by: Sahil Vij <sahil.vij@samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-08-07 18:02:07 -07:00
Bryce Harrington
e40806ecdf test: Add script to display the difference between two result sets 2015-07-31 19:00:48 -07:00
Bryce Harrington
60c2f69535 test: Add script to summarize the test results from a run 2015-07-31 18:59:34 -07:00
Bryce Harrington
e0963f6c8e gitignore: Ignore .trs (test results) 2015-07-31 17:56:54 -07:00
Bryce Harrington
79467f0982 NEWS: Begin filling out news entry for upcoming 1.14.4.
This covers commits up to noon on Jun 18, 2015.
2015-07-31 17:56:54 -07:00
Bryce Harrington
1fca50ea73 NEWS: Fix date on release 2015-07-31 17:56:54 -07:00
Bryce Harrington
2de9fca5f3 boilerplate: Fix list termination for glXChooseVisual
The attribute list is terminated by GLX_NONE (defined as 0x8000), but
the man page of 'glXChooseVisual' says it must be terminated with None
(0L).

Issue found and fix suggested by Massimo.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91293
2015-07-30 17:16:53 -07:00
Bryce Harrington
c04bd43083 test: Free the memory, not the pointer to the memory
In read_file(), we see:

    *data = malloc (*len);
    ...
    if (fread(*data, *len, 1, fp) != 1) {
      free(data);
      ...

The free call needs to be free(*data), to match the malloc call.

Matthias Clasen found this via Coverity and proposed the fix.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91381
2015-07-30 16:45:15 -07:00
Bryce Harrington
0dd5d84bae svg2png: Only call deprecated g_type_init() for old glib versions.
Quells the following warning:

pdf2png.c:52:5: warning: ‘g_type_init’ is deprecated (declared at
/usr/include/glib-2.0/gobject/gtype.h:667) [-Wdeprecated-declarations]
     g_type_init ();
     ^
svg2png.c:47:5: warning: ‘g_type_init’ is deprecated (declared at
/usr/include/glib-2.0/gobject/gtype.h:667) [-Wdeprecated-declarations]
     g_type_init ();
     ^

Patch authored by arpitj01@gmail.com

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=81197
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2015-07-28 17:10:33 -07:00
Bryce Harrington
576bb3ffee If more than one trap is passed in then it's guaranteed that the
returned traps will have their left edge to the left of their right
edge, but if only one trap is passed in then the function always returns
without doing anything.  This results in incorrect rendering of SVG
paths with more than one subpath.

Currently calls to _cairo_bentley_ottmann_tessellate_rectangular_traps
are guarded by traps.has_intersections checks, so this is only a
theoretical bug.  But we'll eliminate the potential of the bug by
making the left side to be left of the right side, similar to what was
done in _cairo_bentley_ottmann_tessellate_boxes (commit 11b6c49c).

Patch authored by Tom Klein for Mozilla.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90984
Ref: https://bugzilla.mozilla.org/show_bug.cgi?id=853889
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
2015-07-27 18:20:07 -07:00
Bryce Harrington
c7cf0dfd60 Revert "cairo-gl: Fix compiler warning if CAIRO_HAS_*_FUNCTIONS is not defined."
This reverts commit c8b6c6066a.

An undefined macro is evaluated as 0.
The preference is to use #if MACRO_NAME rather than #ifdef.

Conflicts:
	src/cairo-gl.h
2015-07-27 14:15:11 -07:00
Andrea Canciani
66bc7b8cb0 quartz: be more strict about the behavior of blend operators
Some blend operators have a (small, but potentially noticeable)
different behaviour in Quartz and pixman. Use the Quartz ones only for
the operators which match pixman except for rounding errors.

Fixes:
 - extended-blend
 - extended-blend-alpha
 - extended-blend-mask
 - extended-blend-alpha-mask
 - extended-blend-solid
 - extended-blend-solid-alpha
2015-07-27 12:46:00 +02:00
Andrea Canciani
6210e34771 quartz: Align filtering quality with image backend
The Quartz framework provides several quality settings, but they were
not used. Now the translation of cairo_filter_t to Quartz filtering
modes tries to match the quality settings from image as much as
possible.

Specifically, CAIRO_FILTER_GOOD and CAIRO_FILTER_BILINEAR are now
converted to kCGInterpolationLow, which seems to be a bilinear filter.

Fixes:
 - pixman-downscale-bilinear-24
 - pixman-downscale-bilinear-95
 - pixman-downscale-good-24
 - pixman-downscale-good-95
 - pthread-same-source
 - recording-surface-extend-none
 - recording-surface-extend-reflect
 - recording-surface-extend-repeat
 - recording-surface-over
 - recording-surface-source
 - surface-pattern-big-scale-down
 - surface-pattern-scale-down
 - surface-pattern-scale-down-extend-none
 - surface-pattern-scale-down-extend-reflect
 - surface-pattern-scale-down-extend-repeat
2015-07-27 12:46:00 +02:00
Andrea Canciani
68e12cd37f test: Update quartz reference images 2015-07-27 12:45:59 +02:00
Andrea Canciani
e1353f3b85 test: Always use DejaVu Sans as default font
This makes the results of the test suite more stable across different
environments, because it does not rely anymore on
CAIRO_FONT_FAMILY_DEFAULT (which on Windows is "Arial", on Mac
"Helvetica").

This change should not affect Linux environments, assuming that the
default font is already set to "DejaVu Sans".
2015-07-27 12:45:59 +02:00
Bryce Harrington
6951fb4238 Revert "pattern: allow for a floating one pixel rounded difference."
While this fixed a real bug, in testing this patch was found to fail a
number of tests and thus needs further work.

This reverts commit e7acf4b6dc.
2015-07-17 12:07:18 -07:00
Arpit Jain
edd321c2f5 gl: Fix incorrect size of expression
The sizeof operator now applied to the correct variable "ctx->glyph_cache",
instead of its pointer address, in function "_cairo_gl_composite_flush".

Fixes:  https://bugs.freedesktop.org/show_bug.cgi?id=91321
Signed-off-by: Arpit Jain <jain.arpit@samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-07-14 01:44:33 -07:00