Commit graph

8745 commits

Author SHA1 Message Date
Andrea Canciani
c1fcbd0322 quartz: fix REFLECT radial gradients
The interpolation range of repeating radial gradients can safely be
reflected around any integer (previously 0), but for reflect-extended
radial gradients can only be reflected around odd integers if the
appearance is to be the same, thus reflecting around 1 is correct for both.

Fixes radial-gradient.
2010-07-26 11:39:27 +02:00
Chris Wilson
3898e46d1d image: Compensate mask origins for glyph clipping
Fixes the regression in bitmap-font and large-font pointed out by Andrea
Canciani since ef067933.
2010-07-23 09:44:00 +01:00
M Joonas Pihlaja
53fcfc781e build: Typos in comments.
Fix inline "dnl" strings left over from a string
substitution "--" -> "dnl".
2010-07-21 22:39:40 +03:00
Hib Eris
fd1e731c9d build: Fix pthread detection code when there isn't one.
The code was testing the output variable $use_pthread rather than
the input variable $enable_pthread when checking that pthreads
were actually found when requested.
2010-07-21 22:34:05 +03:00
Karl Tomlinson
108b1c7825 clip: consider gstate target extents in _cairo_gstate_copy_clip_rectangle_list
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29125

To be consistent with _cairo_gstate_clip_extents, the context's clip
should be intersected with the target surface extents (instead of only
using them when there is no clip).

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-07-17 11:32:02 +01:00
Karl Tomlinson
b79ea8a6ca clip: consider all_clipped in _cairo_clip_get_extents
If the gstate clip in _cairo_gstate_int_clip_extents() has all_clipped
set (and path NULL), then it returns the gstate target extents instead of
an empty rectangle.  If the target is infinite, then it says the clip is
unbounded.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29124
Tested-by test/get-clip

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-07-17 11:30:51 +01:00
Karl Tomlinson
6a51159013 test: return CAIRO_TEST_FAILURE from get-clip preamble on failure
https://bugs.freedesktop.org/show_bug.cgi?id=29120
2010-07-17 11:30:35 +01:00
Karl Tomlinson
f2fa15680e clip: return empty clip from _cairo_clip_copy_rectangle_list when all_clipped
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=29122
Tested by test/get-clip

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-07-17 11:29:54 +01:00
Karl Tomlinson
33ac203587 test: use the surface size expected in get-clip phase "No clip set"
https://bugs.freedesktop.org/show_bug.cgi?id=29121
2010-07-17 11:22:28 +01:00
Chris Wilson
bac5c28a18 boilerplate: Offset the xlib window
An idea courtesy of Benjamin Otte is to stress the drivers a bit more by
not rendering to 0,0. Under various circumstances rendering to a Window
is mapped onto the Screen root Window with a collection of offsets and
clips by X. It is easy for the driver to make a mistake and misrender...
2010-07-17 10:09:14 +01:00
Benjamin Otte
51b0c21f02 build: Add explicit dependcy to cxx lib
Otherwise the build will fail because it doesn't add the dependency
manually.

https://bugs.freedesktop.org/show_bug.cgi?id=29114
2010-07-16 19:49:53 +02:00
Oleg Romashin
6b92d5a0f9 qt: Use native glyph rendering.
Remove the hack of using the xlib surface to do glyph rendering and use
the new interface introduced with Qt4.7, or else fallback to image
rendering with freetype.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
[2 files changed, 35 insertions(+), 140 deletions(-) \o/]
2010-07-16 09:49:42 +01:00
Chris Wilson
f53f072a22 clip: Do the NULL check before the dereference.
Breakage introduced in the commit earlier today.
2010-07-12 18:53:29 +01:00
Chris Wilson
ef0679333d image: Manually clip against bounds when rendering directly
This is path is slightly peculiar in that it explicitly avoid the
intermediate mask and the geometry is not pre-clipped.

This in conjunction with the previous commit fixes:

  Clip doesn't work for text
  https://bugs.freedesktop.org/show_bug.cgi?id=29008

which is captured in test/partial-clip-text.
2010-07-12 16:33:42 +01:00
Chris Wilson
679e5a600b Differentiate between reducing clip to composite extents and a rectangle
This is required for handling glyphs when rendering directly to the
surface.
2010-07-12 16:33:38 +01:00
Chris Wilson
8546a87788 test: Add partial-clip-text
This exercises a bug found by Igor Nikitin:

  https://bugs.freedesktop.org/show_bug.cgi?id=29008
2010-07-12 16:33:38 +01:00
Chris Wilson
53ee897449 version: Post-snapshot bump to 1.9.13 2010-07-12 12:37:31 +01:00
Chris Wilson
aa4cd8287f version: 1.9.12 snapshot 2010-07-12 12:19:54 +01:00
Chris Wilson
53b129dd8a NEWS for 1.9.12. 2010-07-12 12:19:54 +01:00
Chris Wilson
01380f3a56 test: Missing REFERENCE_IMAGES 2010-07-12 11:50:42 +01:00
Chris Wilson
459b8ae660 Make distcheck happy. 2010-07-12 11:05:57 +01:00
Andrea Canciani
d56b171802 test: Add halo quartz reference images
When quartz-font is enabled, halo and halo-transform fonts have a
different shape.
2010-07-12 10:36:24 +02:00
M Joonas Pihlaja
9107895789 test: Add comments explaining the bug in bug-seams.
Where two rasterization methods meet, havoc occurs.
2010-07-12 11:03:15 +03:00
M Joonas Pihlaja
0152db263b build: Sync up autogenerated win32 build files. 2010-07-12 10:39:18 +03:00
Eric Anholt
06ffb7df71 gl: Only use a mat3 for the transformation for gradients coordinates.
No point in passing in a column of zeroes that we multiply by zero, or
the row that we drop on the floor.  We could do even better by just
passing in a 3x2, at the expense of adding a language version
dependency (or just pass in 2 vectors).

No significant performance difference.
2010-07-11 21:56:55 -07:00
M Joonas Pihlaja
1e7485f8e5 trace: Avoid stdbool.h C99ism.
There is no <stdbool.h> on old Solaris without invoking
c99 mode explicitly.
2010-07-12 00:50:13 +03:00
M Joonas Pihlaja
97529a3713 build: Avoid shifting shell parameters that aren't there.
The shift primitive of the Solaris 9 Bourne shell doesn't like
it if we try to shift more formal arguments than are there.
This causes the compare_versions function in autogen.sh to croak when
the actual and compared versions differ in the number of
components.
2010-07-12 00:49:57 +03:00
Benjamin Otte
dd6026b613 doc: Make the necessity of flush/mark_dirty more obvious 2010-07-11 23:32:12 +02:00
Benjamin Otte
8a1944f45b check: Allow unprefix type names in the title
Some documentation sections use the type name as the title, and we don't
want to use that title as a link.
2010-07-11 23:32:12 +02:00
M Joonas Pihlaja
f0466ecf7d build: Fix typo in pthread test program.
Missing a semicolon after pthread_cleanup_push.  Incredibly
only openbsd 4.5 minded.
2010-07-11 21:57:40 +03:00
M Joonas Pihlaja
3f1d7de8e1 build: Fix regression provoked by newer autoconf and dodgy configuring.
We're not supposed to be redefining PACKAGE_VERSION, PACKAGE_...
from the configure generated confdefs.h.  This patch rudely adds
paper over the problem.  The compiler warnings are a problem for
us since our checking of various compiler flags assumes that
no news is good news, and that any warning messages are due
to the flags under test.  The regression appears when using
an autoconf >= 2.64, at least, but not with 2.61.

The same issue appears in the pthread test because our conftest
unconditionally #defines _GNU_SOURCE, but autoconf ends up doing
that in the confdefs.h.
2010-07-11 21:40:26 +03:00
M Joonas Pihlaja
fca8977219 build: Rework pthread detection.
Use two levels of pthread support: a minimal level used to
build cairo itself, and a full level to build threaded apps
which want to use cairo.  The minimal level tries to use
pthread stubs from libc if possible, but falls back to the
full level if that's not possible.  We use CFLAGS=-D_REENTRANT
LIBS=-lpthread to find a real pthread library since that seems
to work on every unix-like test box we can get our hands on.
2010-07-11 21:40:26 +03:00
M Joonas Pihlaja
47c35e5e86 build: Purge CAIRO_CC_TRY_LINK_FLAG.
Use CAIRO_CC_TRY_FLAG instead in the one place where we used
CAIRO_CC_TRY_LINK_FLAG and make the build system one macro
smaller.
2010-07-11 21:40:26 +03:00
M Joonas Pihlaja
d2f5592e0e build: Factor out a more pliable CAIRO_CC_TRY_LINK_WITH_ENV_SILENT.
Introduce a new CAIRO_CC_TRY_LINK_WITH_ENV_SILENT macro for running
generic link tests with arbitrary CFLAGS/LIBS/LDFLAGS and no muttering
of autoconf messages.  Rewrite the previous CAIRO_CC_TRY_FLAG in terms
of it.
2010-07-11 21:40:25 +03:00
Benjamin Otte
120b78ada7 build: Split boilerplate lib generation into two so's
Same thing as what was previously done for libcairo.so: Build an
intermediate lib for the (potential) C++ stuff.
2010-07-11 18:53:42 +02:00
Benjamin Otte
d6362a0d76 qt: Define cairo-qt's API as C symbols
That way, the C linker doesn't mess up when linking libcairo.so.
2010-07-11 18:53:42 +02:00
Benjamin Otte
5d4a4775c8 build: Fix typo that makes C++ libs not build 2010-07-11 18:53:42 +02:00
Chris Wilson
9b9952ab4f Convert mime data length to use unsigned long
What we want to use is size_t, but we don't want the implied POSIX
dependency. However, POSIX does say that size_t is an unsigned integer
that is no longer than a long, so it would appear safe to use an
unsigned long as a replacement. Safer at least than unsigned int.
2010-07-10 11:16:19 +01:00
Chris Wilson
eb85ab998b subsurface: Don't assume we ever own the target.
Andrea pointed out that snapshots can be shared, and so the subsurface
should not be calling finish even on a snapshot.
2010-07-10 11:16:19 +01:00
Benjamin Otte
59c83117d7 build: Commit new versions of autogenerate Windows build files
The recent commits to the build system changed a bunch of stuff in
there, so update the files.
2010-07-09 18:55:11 +02:00
Benjamin Otte
bf117e4ea7 build: fix glew include
Currently wether internal glew is built is dependant on wether the
tarball in use was built with internal glew or not. And that's not how
it should be.
2010-07-09 18:43:38 +02:00
Benjamin Otte
0bd704bd1e build: Remove wrong flags from libcairo_cxx.la
They're useful for the final so, but not for an intermediate noinst lib.
2010-07-09 17:15:02 +02:00
Benjamin Otte
faceffd5be build: copy/paste failure: Don't build libcxx.la 2010-07-09 16:58:18 +02:00
Benjamin Otte
dbb386d3c0 gl: Use unsigned int instead of GLuint
GLuint is not defined in cairo-gl.h. If unsigned int is not compatible
enough to GLuint, we might consider to use #include <GL/gl.h> instead.
2010-07-09 12:49:10 +02:00
Benjamin Otte
f7fc8569a7 build: Fix C++ issues with automake
This is an attempt to fix the broken situation we've been in where
automake links libcairo.la with c++ because it might potentially maybe
include C++ files.

Those potential files only exist in Chris' throwaway backends (skia, qt)
and the BeOS backend, so for 99.99% of cases, these backends are not
needed and linking with c++ is overkill. Also, no one wants to have
libcairo.so link to libstdc++.

This patch fixes that in mutliple steps:
1) Add build infrastructure to distinguish between C and C++ backends.
   This is done by allowing to specify backend_sources as well as
   backend_cxx_sources variables in Makefile.sources.
2) Optionally build a libcairo_cxx.la noinst library
   This intermediate library is built for C++ backends only and therefor
   linked using c++. It is then linked into the final libcairo.la. This
   does not require c++, so the linking of libcairo.la is done with cc.

This also works around various weirdnesses that the current build system
exposes, where it assumes cisms when in fact using c++ semantics, like
not detecting c++ properly or:
https://bugzilla.redhat.com/show_bug.cgi?id=606523
2010-07-09 12:38:37 +02:00
Benjamin Otte
df6d49f6ea build: Get rid of $(foo_files) Makefile.am variables
They're unused, and less variables make the build system easier to
understand.
2010-07-09 11:10:20 +02:00
Benjamin Otte
ce530b2802 doc: Add "@Since: 1.10" tags to device docs 2010-07-09 04:24:51 +02:00
Benjamin Otte
c1fed69302 gl: Remove double ** from some comments
gtk-doc doesn't like that unless it's a real gtk-doc comment.
And it wasn't.
2010-07-09 04:20:42 +02:00
Benjamin Otte
5c73b371ae doc: Document remaining cairo-device functions 2010-07-09 04:20:06 +02:00
Benjamin Otte
9877c1932a doc: Add more documentation for devices
Add general docs and document acquire/release. I'm not happy with the
documentation yet. In particular, I have 2 issues:
1) The threading guarantees Cairo provides are missing.
2) There's no docs on which Cairo functions do acquire devices.

I guess I'll have to fix them later.
2010-07-09 04:09:19 +02:00