Commit graph

8132 commits

Author SHA1 Message Date
Chris Wilson
887d43578c xlib: Simply release the ref, not destroy, from CloseDisplay.
Do not call the destroy function directly, but rely on the reference
counting to call the notifier upon the last reference. Instead, simply
release the reference we were holding for the cache and CloseDisplay
callback.
2010-04-23 20:15:44 +01:00
Chris Wilson
c63e3490a5 cairo: Handle the all-clipped state in cairo_push_group()
Yet another bug reported by Jeff Muizelaar, thanks!

Fixes: test/clip-empty-group
2010-04-23 14:47:59 +01:00
Chris Wilson
567e485f28 test: Add clip-empty-group
Exercise a bug reported by Jeff Muizelaar whereby cairo_push_group() was
broken by everything being clipped out.
2010-04-23 14:47:51 +01:00
Chris Wilson
4438cc6a49 cairo: Use explicit device flushing.
Now with the concept of a cairo_device_t and the ability to flush it,
we now longer require the heuristic of automatically flushing on behalf
of the user at the end of every context.
2010-04-23 14:39:21 +01:00
Chris Wilson
0fc140abc3 pdf: Suppress compiler warning. 2010-04-23 14:39:21 +01:00
Chris Wilson
1923a33a72 cairoint.h: Change ASSERT_NOT_REACHED to remove compiler warning 2010-04-23 14:39:21 +01:00
Chris Wilson
d366da7d8c Win32 features update 2010-04-23 14:39:21 +01:00
Chris Wilson
c1e51a0264 build: Spelling correction 2010-04-23 14:39:21 +01:00
Chris Wilson
e0306da1d7 configure: typo in check for xcb-shm 2010-04-21 22:52:16 +01:00
Andrea Canciani
b7fbda276d Revert "script: Another RGB16_565 warning."
This reverts commit a9f5064933.

The change was already applied in bdf8f50ada.
2010-04-19 10:38:43 +02:00
Benjamin Otte
f74ad37e66 xlib: Make display a cairo_device_t
The code now uses the locking of the cairo_device_t instead of its own
mutexes.

The code was modified so that cairo_surface_t does no longer reference
the display directly. Instead, it calls _cairo_xlib_display_acquire().
If a function assumes an already acquired display, it now requires the
caller to provide a cairo_xlib_display_t parameter. Functions that do
not require an acquired display will not require the display parameter
or they will take the cairo_device_t instead.
2010-04-18 23:20:02 +02:00
Benjamin Otte
2bffa2467e Use pixman_image_composite32()
Replace all occurences of pixman_image_composite()
2010-04-15 18:31:01 +02:00
Benjamin Otte
567923d66a image: Make unbounded fixup code not use pixman_fill()
The new pixman_image_fill_boxes() does proper fallbacks for weird pixman
formats.
2010-04-15 18:31:01 +02:00
Benjamin Otte
b648365cfa Require pixman 0.17.5
We want pixman_image_composite32() and pixman_image_fill_boxes()
2010-04-15 18:31:01 +02:00
Benjamin Otte
0a19ad7c10 gl: Get rid of "return value not checked" warnings
Assert that those functions only return successfully.
2010-04-15 18:31:00 +02:00
Benjamin Otte
7745ea21e1 gl: acquire/release properly in _cairo_gl_draw_image()
Fixes various testsuite failures, in particular ones related to masks.
2010-04-15 18:31:00 +02:00
Benjamin Otte
596d3017a1 gl: acquire/release context when getting images
Avoids Mesa complaining about no current context.
2010-04-15 18:31:00 +02:00
Benjamin Otte
46ef05c3d7 glx: Add getters for device's Display and GLXContext 2010-04-15 18:31:00 +02:00
Benjamin Otte
712919223d gl: Make code safe for multithreaded access
The code callss the gl device's acquire/release in
cairo_device_acquire/release(). This way, external APIs can use these
functions to prepare for rendering GL.

Also adds code to unset the glx context if it wasn't set when acquiring
the device. This allows multithreaded apps to work fine with just using
cairo APIs, but might introduce penalties in single-threaded
applications.
2010-04-15 18:30:54 +02:00
Benjamin Otte
8f2e82cea3 xcb: Make code not complain about every new format 2010-04-15 17:48:24 +02:00
Benjamin Otte
1d753b2f4d xlib: Make code not complain about every new format 2010-04-15 17:47:01 +02:00
Benjamin Otte
ebc9cc46fe gl: Use right format
The internal format should always be GL_RGBA.
2010-04-15 17:43:32 +02:00
Chris Wilson
4142f0836d gl: Handle component-alpha ADD
A simple extension to the component-alpha OVER [as ca-ADD is just the
second pass in ca-OVER] to support amalgamation of glyph masks. This
speeds up firefox-36 by ~5% on g45.

Before:
  firefox-36-20090611   76.185
After:
  firefox-36-20090611   72.863
2010-04-15 09:21:05 +01:00
Benjamin Otte
a4bae1956b gl: Really don't write error status to the inert object. 2010-04-14 22:46:34 +02:00
Benjamin Otte
5fed41ee2b test: Add test checking that all setters properly check surface->status
In particular, make sure that the setters when called on a const nil
surface don't try to set surface->status.
2010-04-14 22:45:18 +02:00
Chris Wilson
6826f02001 gl: Don't write error status to the inert object.
Reported-by: Benjamin Otte <otte@redhat.com>
2010-04-14 20:26:48 +01:00
Chris Wilson
3814855a64 script: Flush prior to modifying the image data. 2010-04-14 20:22:14 +01:00
Chris Wilson
03f7bfc351 rtree: Remove the false assert upon collapse. 2010-04-14 20:14:39 +01:00
Chris Wilson
b0383d0cd2 svg: Don't write error status to the inert object.
Reported-by: Benjamin Otte <otte@redhat.com>
2010-04-14 19:42:20 +01:00
Chris Wilson
5274b63adb ps: Don't write error status to the inert object.
Reported-by: Benjamin Otte <otte@redhat.com>
2010-04-14 19:42:20 +01:00
Chris Wilson
45d23b8a79 pdf: Don't write error status to the inert object.
Reported-by: Benjamin Otte <otte@redhat.com>
2010-04-14 19:42:16 +01:00
Chris Wilson
4351304b51 Win32 features update. 2010-04-14 19:31:35 +01:00
Chris Wilson
bd17b898b1 surface: Propagate the error status to _cairo_surface_get_device()
If the surface is in error, the appropriate action is report the error
using an inert error cairo_device_t.

Reported-by: Benjamin Otte <otte@redhat.com>
2010-04-14 19:31:35 +01:00
Chris Wilson
005596907f xlib: Don't operate on an error object inside setters.
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=599574

The backend API manipulated the surface prior to checking whether it was
an inert error surface - and in the event of an error surface, tried to
overwrite it's error status.
2010-04-14 19:31:31 +01:00
Chris Wilson
8afd4e4c3d hull: _cairo_hull_vertex_compare() return 0 for identical elements
Andreas Falkenhahn reported a bizarre situation with some
implementations of qsort that actually compare the same elements and
require the comparator to return 0. So be it.

Reported-by: Andreas Falkenhahn <andreas@airsoftsoftwair.de>
2010-04-13 17:56:14 +01:00
Chris Wilson
d95037db99 cache: Tidy _cairo_cache_shrink_to_accommodate()
There is no need to shrink the cache if we add an entry of size 0, so
don't by moving the guards in _cairo_cache_shrink_to_accommodate() to the
callers.
2010-04-11 21:06:53 +01:00
Chris Wilson
e6309c6307 xcb: Use normal finish to decouple from surface cache.
Hook into the standard finishing process for a more robust cache removal
mechanism. firefox was able to trigger some double free asserts
otherwise.
2010-04-11 21:06:53 +01:00
Andrea Canciani
e425c44e9c boilerplate: Compile xlib without xrender
cairo_boilerplate_xlib_surface_disable_render() is not defined when
compiling without XRender, but it was used nonetheless. Replace it
with an empty stub when XRender is not available.
2010-04-10 18:28:42 +02:00
Andrea Canciani
061ea78ad2 perf: Correct cairo-perf-diff syntax
{ cmd-list; } seems to literally be the required syntax. Blanks and
';' are both mandatory.
2010-04-10 18:25:25 +02:00
Chris Wilson
6986970ea5 clip: Compile fix for previous clip.
PEBKAC.
2010-04-10 17:05:38 +01:00
Chris Wilson
0899852c97 clip: Compare the whole clip when testing for equality.
Should fix test/clip-contexts
2010-04-10 16:03:14 +01:00
Chris Wilson
557016a86a test: Add clip-contexts
This should exercise a bug found by Jeff Muizelaar that
cairo-surface-clipper was mistakenly thinking that clip operations on a
second context was a no-op as the topmost clip path matched that of the
previous context.
2010-04-10 16:03:14 +01:00
Chris Wilson
a9f5064933 script: Another RGB16_565 warning. 2010-04-10 16:03:14 +01:00
Adrian Johnson
42b5cac766 PDF-operators: ensure text operations flushed before emitting clip 2010-04-10 22:15:01 +09:30
Chris Wilson
c004800fae script: Compile without FT_FONT 2010-04-07 22:50:34 +01:00
Chris Wilson
bdf8f50ada script: Another RGB16_565 warning. 2010-04-07 22:50:21 +01:00
Chris Wilson
f5f6431787 perf: Switch between micro and trace benchmarks for cairo-perf-diff 2010-04-07 22:50:15 +01:00
Andrea Canciani
70ca0040fd Actually check for memory allocation failure
Clang static analyzer signals "Dereference of null pointer" in case
the malloc returns NULL, as the code is checking the wrong pointer.
2010-04-07 22:58:36 +02:00
Benjamin Otte
d7f71ac5c2 region: Make the 2nd argument to intersect and union const 2010-04-07 22:04:39 +02:00
Kristian Rietveld
ded3a9639b quartz: Define cairo_quartz_float_t and use instead of float
On Mac OS 10.6 and newer cairo_quartz_float_t is defined to be a
CGFloat, resolving issues with the 64-bit builds.

Fixes https://bugs.freedesktop.org/show_bug.cgi?id=25814
2010-04-04 12:34:29 +02:00