Age | Commit message (Collapse) | Author | Files | Lines |
|
ranma42 found a bug in compositing with a radial gradient using the
SOURCE operator with EXTEND_NONE, as exercised here.
|
|
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.
|
|
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.
|
|
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.
|
|
Just after the 1.9.4 snapshot.
|
|
Again, the kind of thing that only gets fixed at release time.
But at least we have a nice test for this.
|
|
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).
|
|
In preparation for the 1.9.4 snapshot.
|
|
This is just one of those things that we don't get right until
someone tries running "make distcheck".
|
|
|
|
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.
|
|
_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.
|
|
Exercises a bug demonstrated by WebKit with clipping + device offsets.
|
|
Avoid pulling in the real pthread library if the application is single
threaded and not using pthreads, by linking against pthread-stubs
instead.
|
|
Use libatomic-ops-dev in preference to mutex-based atomics, if we do not
have the builtin atomic intrinsics available.
|
|
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.
|
|
Bug 24240 acroread prints error message when printing
|
|
Bug 24240 first char missing when printing a PDF.
|
|
All the error checking, finally pointed out that I was creating a pixmap
with the wrong depth! Oops.
|
|
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!
|
|
|
|
|
|
Bug 24213
|
|
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.
|
|
Add bread crumbs in the form of NoOperations that can be parsed by
xtrace and very useful when debugging protocol/server errors.
|
|
When scanning for collinear right edges, we need to check that we do not
go beyond the end of the array.
|
|
|
|
Fixing omission in caa9eed4646e78a62ffb49d9c4f48c0b351c7a7f
|
|
|
|
Patch originally by Mark Kettenis
|
|
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
|
|
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.
|
|
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.
|
|
Return FALSE when the pixman format does not support ARGB masks. In
particular, return FALSE for YUV formats.
|
|
This test demonstrates a regression in the EPS output since 1.8.8.
The ps-eps.ref.eps was created with 1.8.8.
|
|
Gah, more important than the whitespace was the reversal of is_clear...
|
|
Whitespace spam.
|
|
Simplifies code and ensures other users of that function don't run into
the same bug.
|
|
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.
|
|
Include a translucent region in the source that exercises the xlib bug
that I'm trying to fix. Hmm.
|
|
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.
|
|
If we cannot find the correct visual for the fbconfig, return an error
instead of crashing. The difference is subtle, granted.
|
|
it was wrapping code required for non windows fonts.
|
|
|
|
To better support creating EMF files with the win32-printing surface,
allow a GDI CTM with scale < 1 to be used.
http://lists.cairographics.org/archives/cairo/2009-September/018110.html
|
|
|
|
|
|
|
|
The WINVER defines should always be defined before including windows.h
|
|
Commit 535bcaa1 moved pthread after win32 to fix mingw build
problems. However this breaks cygwin builds.
On cygwin HAVE_WINDOWS_H is defined but _WIN32 is not. This was
causing windows.h to be included which defines _WIN32. As a result the
win32 code in cairo-misc.c was being compiled but the win32 declaration
in cairint.h was not included.
Fix this by using _WIN32 to enable the win32 mutex functions since
_WIN32 is defined by mingw, visual C++, and winegcc, but not
cygwin. On cygwin, posix functions are preferred as it is a unix
emulation environment.
|