Commit graph

7699 commits

Author SHA1 Message Date
Chris Wilson
710303ef15 [test] Update rotate-image-surface-paint
Update this test case so the background is not the default border colour
so that we spot when the backend pads out the transformed image surface.
2009-10-19 17:21:57 +01:00
Luo Jinghua
ea39f0302a atomic: correct libatomic_ops version of _cairo_atomic_int_cmpxchg
AO_compare_and_swap_full() doesn't have the same semantic as
_cairo_atomic_int_cmpxchg(). The former returns a TRUE on success
FALSE otherwise while the later returns the atomic value.
2009-10-19 22:28:05 +08:00
Benjamin Otte
a2254e5647 [gstate] Apply target device offsets to patterns immediately
Previously target device offsets were applied in cairo-surface.c which
could cause bugs when paths were taken as fallbacks, as for example
pointed out by ade55037ff and quick-fixed
by 79190d8985. The quick-fix is now
unnecessary and was removed.
2009-10-18 22:12:13 +02:00
Benjamin Otte
4b720d56db [clip] Remove non-existing functions from header 2009-10-18 21:32:10 +02:00
Benjamin Otte
cacf9ccedf [path] Fix compiler warnings 2009-10-18 21:30:22 +02:00
Benjamin Otte
a70705b2ed [xlib] Fix compiler warnings 2009-10-18 21:30:06 +02:00
Chris Wilson
96117c1212 [test] Add radial-gradient-source
ranma42 found a bug in compositing with a radial gradient using the
SOURCE operator with EXTEND_NONE, as exercised here.
2009-10-17 10:37:38 +01:00
Chris Wilson
54df07a3da [surface] Don't AND in the desired content.
Gah, that was a horrible mistake. It was a flawed hack to create Pixmaps
of the correct depth when cloning patterns for blitting to the xlib
backend. However, it had the nasty side-effect of discarding alpha when
targeting Window surfaces. The correct solution is to simply correct the
Pixmap of the desired depth and render a matching pattern onto the
surface - i.e. a reversal the current acquire -> clone. See the
forthcoming revised xcb backend on how I should have done it originally.
2009-10-16 17:04:16 +01:00
Chris Wilson
6a19a82efd [image] Clone the format for a similar surface with identical content
Honour the incoming surface format when we are asked to create a similar
surface with identical content. The goal of
cairo_surface_create_similar() is to create an intermediate with similar
characteristics to the original that can be used in place of the
original and be quick to copy to the original. Matching the format for
the same content, ensures that the blits between the two need only be a
memcpy.
2009-10-16 10:13:57 +01:00
Chris Wilson
ed94d7caad [fallback] Create intermediate surface with same content.
The goal is to create a similar surface with an identical format to
maximise performance in the subsequent blit, e.g. the xlib backend could
make the similar surface with an identical depth and so use the core
protocol, or the image surface could indeed make an identical copy so
that pixman only has to do a fast memcpy. As there is no direct method
to specify such a clone, we ask the backend for a similar surface of
identical content, and trust that the semantics are clear enough for the
intent to obvious.
2009-10-16 09:00:16 +01:00
Carl Worth
c739940137 Increment version to 1.9.5
Just after the 1.9.4 snapshot.
2009-10-15 16:24:44 -07:00
Carl Worth
ad6334b987 Add mising images to REFERENCE_IMAGES list.
Again, the kind of thing that only gets fixed at release time.
But at least we have a nice test for this.
2009-10-15 15:33:20 -07:00
Carl Worth
cdad5e1076 Mark in-fill-empty-trapezoid as an XFAIL test.
Otherwise, it was disrupting my attempts to release a snapshot, (since
it doesn't respect CAIRO_TEST_TARGET=" " and not run like most of the
tests do).
2009-10-15 14:58:39 -07:00
Carl Worth
b0f309abb3 Update version to 1.9.4
In preparation for the 1.9.4 snapshot.
2009-10-15 14:40:22 -07:00
Carl Worth
3b113275f8 Remove stale references to non-existant reference images.
This is just one of those things that we don't get right until
someone tries running "make distcheck".
2009-10-15 14:17:30 -07:00
Carl Worth
37078b262a NEWS: Update with correct data for 1.9.4 snapshot 2009-10-15 14:11:04 -07:00
M Joonas Pihlaja
d5609ca04e [build] Check compiler flags using AC_TRY_LINK instead of AC_TRY_COMPILE.
Turns out we were passing suncc warning suppression flags to gcc
by mistake since -e<entry point> is actually a valid option for
gcc.  This caused the -erroff=E_ENUM_TYPE_MISMATCH_ARG and other
-erroff options to be passed to the linker.  In the normal case
of a GNU ld linker this doesn't matter since it ignores bogus
entry points, but the GNU gold linker replaces a bogus entry
point with NULL.  This patch makes the CAIRO_CC_TRY_FLAG()
check stricter by testing that the flag doesn't interfere with
linking executables.
2009-10-15 17:47:33 +03:00
Chris Wilson
79190d8985 [surface] Avoid double application of device offset when calling fill()
_cairo_surface_fallback_paint() attempts to avoid a clipped operation if
we can convert the paint into a fill of the clipmask. However by calling
_cairo_surface_fill() we incur a double application of device offset to
the source, triggering various failures.

Company spotted this and managed to extract an excellent minimal test
case, test/clip-device-offset. This commit fixes that failure.
2009-10-15 14:08:01 +01:00
Benjamin Otte
ade55037ff [test] Add clip-device-offset
Exercises a bug demonstrated by WebKit with clipping + device offsets.
2009-10-15 14:08:01 +01:00
Chris Wilson
dac73d260a [build] Link against pthread-stubs
Avoid pulling in the real pthread library if the application is single
threaded and not using pthreads, by linking against pthread-stubs
instead.
2009-10-15 13:05:47 +01:00
Chris Wilson
ef9286751d [atomic] Fallback to libatomic-ops-dev
Use libatomic-ops-dev in preference to mutex-based atomics, if we do not
have the builtin atomic intrinsics available.
2009-10-15 13:05:46 +01:00
Chris Wilson
d85eda97dd [pattern] Compute extents for gradients
As noted in the comments we could also compute the pattern extents for
gradients with CAIRO_EXTEND_NONE under certain circumstances, i.e.
radial gradients and device axis aligned linear gradients.
2009-10-15 13:05:42 +01:00
Adrian Johnson
3a83bc8617 PDF: Fix regression caused by 1ae5a419
Bug 24240 acroread prints error message when printing
2009-10-02 23:28:10 +09:30
Adrian Johnson
91a4f59f13 PDF: Fix regression caused by 1ae5a419
Bug 24240 first char missing when printing a PDF.
2009-10-02 23:11:54 +09:30
Chris Wilson
3928415923 [boilerplate/xcb] Fix pixmap depth
All the error checking, finally pointed out that I was creating a pixmap
with the wrong depth! Oops.
2009-09-30 20:11:12 +01:00
Chris Wilson
e9bc2180d7 [xcb] Deferred error checking.
XCB avoids the dreaded abort on XError mechanism by forcing the client
to perform deferred error checking. So do so. This allows us to combine
the fire-and-forget rendering model with accurate error checking,
without killing the client or mixing our errors with theirs.

XCB for the win!
2009-09-30 20:11:07 +01:00
Chris Wilson
8e4e0aa7ee [boilerplate/xcb] Check for connection errors during test 2009-09-30 17:50:35 +01:00
Chris Wilson
395555b116 [xlib] Suppress warning that should never have been. 2009-09-30 17:50:35 +01:00
Adrian Johnson
42ea356c03 Fix truetype subset crash
Bug 24213
2009-09-30 21:24:41 +09:30
Benjamin Otte
6809e12161 [API] Make _cairo_meta_surface_replay() private again
Replaying a meta surface can be achieved by using it as a source for a
cairo_paint() so exporting a separate API is unnecesary and confusing.
So after consulting Chris and Carl, we decided to remove the function
again.
2009-09-30 08:58:19 +02:00
Chris Wilson
f8c49b4187 [xlib] XRequest bread crumbing
Add bread crumbs in the form of NoOperations that can be parsed by
xtrace and very useful when debugging protocol/server errors.
2009-09-29 03:03:51 +01:00
Chris Wilson
1c4f61ec50 [tessellator] Invalid conversion of list head to edge.
When scanning for collinear right edges, we need to check that we do not
go beyond the end of the array.
2009-09-29 03:03:51 +01:00
Chris Wilson
f23ae97e30 [perf] Support parsing reports from stdin 2009-09-29 03:03:51 +01:00
Benjamin Otte
50163a9faf [xlib] Set proper bpp when computing format from masks
Fixing omission in caa9eed464
2009-09-29 00:24:37 +02:00
Benjamin Otte
a160c8c400 [xlib] Handle 24bpp formats during dithering 2009-09-29 00:11:52 +02:00
Benjamin Otte
9e89de8135 [image] Fix masks computation for BGRx format
Patch originally by Mark Kettenis
2009-09-29 00:11:48 +02:00
Adrian Johnson
4b2c74e285 PS: Use standard page size names for some common sizes
Some PS viewers like gv use the label in the %PageMedia DSC comment as
the displayed page size.

The page names and sizes were obtained from the list at:

http://www.gnu.org/software/gv/manual/html_node/Paper-Keywords-and-paper-size-in-points.html
2009-09-28 22:57:10 +09:30
Adrian Johnson
db5e3db0a9 PS: Add DocumentMedia/PageMedia DSC comments
Provide default DocumentMedia and PageMedia DSC comments if the user
does not specify them using cairo_ps_surface_dsc_comment(). This is
required so that PostScript viewers such as gv use the correct page
size.
2009-09-25 23:24:36 +09:30
Benjamin Otte
caa9eed464 [xlib] Handle case in draw_image() where pixman format is not RGB
When an image cannot be expressed as masks, its data cannot be used in
an XImage. In that case, we use pixman to copy the image to the desired
format.
2009-09-25 00:16:39 +02:00
Benjamin Otte
9f5fe67115 [image] Return cairo_bool_t from _pixman_format_to_masks
Return FALSE when the pixman format does not support ARGB masks. In
particular, return FALSE for YUV formats.
2009-09-25 00:14:15 +02:00
Adrian Johnson
120247ac55 Add EPS test
This test demonstrates a regression in the EPS output since 1.8.8.
The ps-eps.ref.eps was created with 1.8.8.
2009-09-24 23:29:21 +09:30
Chris Wilson
c8a4f48671 [image] Do not trust user supplied data to be clear
Gah, more important than the whitespace was the reversal of is_clear...
2009-09-23 18:08:34 +01:00
Chris Wilson
03bce099ea [image] Tweak coding style
Whitespace spam.
2009-09-23 17:56:00 +01:00
Benjamin Otte
ab558fa843 [image] Move setting of is_clear to _create_with_pixman_format()
Simplifies code and ensures other users of that function don't run into
the same bug.
2009-09-23 17:40:45 +02:00
Chris Wilson
07ee9cfbf0 [image] Do assumption initial user data is cleared.
Benjamin Otte pointed out the error of my ways that a clear on a
cairo_image_surface_create_for_data() was not working. This is because I
modified the image surface to skip clears when it knows the target data
has been cleared. This flag must be reset when the user interacts with
the surface, such as providing the initial surface data.
2009-09-23 15:37:35 +01:00
Chris Wilson
9948b5180a [test] Revamp surface-source
Include a translucent region in the source that exercises the xlib bug
that I'm trying to fix. Hmm.
2009-09-22 18:20:03 +01:00
Chris Wilson
941d3693fa [test] Exercise push-group-color.
Hunting for a known bug in the xlib backend where it invalidly converts
an argb32 source to rgb24. However, this does not appear to be that bug,
but still a useful exercise nevertheless.
2009-09-22 15:46:56 +01:00
Chris Wilson
30f45ce5f7 [gl] Handle an absent visual.
If we cannot find the correct visual for the fbconfig, return an error
instead of crashing. The difference is subtle, granted.
2009-09-22 15:46:56 +01:00
Adrian Johnson
e74cb7fa3e win32-printing: correct the use of the CAIRO_HAS_WIN32_FONT #ifdef
it was wrapping code required for non windows fonts.
2009-09-22 22:44:34 +09:30
Adrian Johnson
3dd2cc8f6d win32-printing: fix meta surface pattern regression caused by bed2701e 2009-09-22 22:40:53 +09:30