Commit graph

8085 commits

Author SHA1 Message Date
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
Andrea Canciani
7c2c3f621f Correct masking optimization
In _cairo_surface_mask() there was an invaild optimization (it failed
for surfaces without alpha content). Using _cairo_pattern_is_clear()
is the correct way to evaluate if a pattern is clear.

Fixes clear-source
2010-04-03 22:57:19 +02:00
Chris Wilson
24fc36c10f script: Fix endian encoding of '<|' length.
Andrea found and fixed (and updated all the traces!) an endian bug where
we were encoding a 32bit length inside the compressed string stream.
However, this one inside the script backed escaped his notice.
2010-04-02 08:51:03 +01:00
Chris Wilson
697094488c test: Add inverse text
This is exercising a bug that I have introduced either in the xcb
backend or in the driver in my experimental branches. So simple, yet so
wrong.
2010-04-02 08:51:03 +01:00
Chris Wilson
fe610d559c perf/micro: Show megapixel fill rate during paint. 2010-04-02 08:51:03 +01:00
Chris Wilson
8f7078eba7 boilerplate: Allox xlib-fallback to build without RENDER
This surface doesn't use RENDER and should produce the same results
when cairo-xlib is compiled without any support for RENDER.
2010-04-01 20:42:44 +01:00
Chris Wilson
d209b40c64 xlib: Rearrange xrender stubs to restore compilation without xrender.h 2010-04-01 20:36:15 +01:00
Behdad Esfahbod
db4dbb3834 Improve doc syntax check to allow inline macro docs 2010-04-01 01:53:53 -04:00
Chris Wilson
00101fa716 configure: check -lrt for shm_open()
OS/X includes shm_open() in libc, and fails to link if -lrt is
specified. So perform the appropriate configure time magic.
2010-03-31 16:20:13 +01:00
Andrea Canciani
a81d347c24 perf: Fix timestamp computation on MacOS X
The OIL routines don't work as expected on MacOS X. The operating
system gives access to the timestamp counter through the function
mach_absolute_time.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-03-31 16:13:05 +02:00
Andrea Canciani
55ce0b7748 script: Fix script scanner endianness
The script interpreter was reading the length of compressed data as
an host-endian uint32_t, thus making cairo-script able to correctly
read traces that were produced on the same endianness as the one they
ran upon, but unsuitable for portabile cairo-scripts.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-03-31 16:13:05 +02:00
Andrea Canciani
4f617eaf77 trace: Fix trace endianness
Trace files were using host-endian to represent the length of
compressed data, making the trace format not portable.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-03-31 13:13:36 +02:00
Andrea Canciani
35f19bc084 pattern: Fix _gradient_is_opaque() for zero stops
_gradient_is_opaque() previously returned TRUE for gradient with
no stops, triggering a false optimization in _cairo_gstate_mask().

Fixes test/gradient-zero-stops-mask

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-03-31 12:52:09 +02:00
Andrea Canciani
01e1821942 test: Add gradient-zero-stops-mask
Add a test to check that gradient with no stops are not considered
opaque by gstate (and thus masking with them is not optimized to
paint).
2010-03-31 12:14:25 +02:00
Chris Wilson
ce3ad6f41e xlib: Avoid multiple evaluations inside bswap_*() macro.
Fixes:
  Fonts are not readable if remote display to a machine with different
  endian.
  https://bugzilla.mozilla.org/show_bug.cgi?id=526977

Reported-and-tested-by: Ginn Chen <Ginn.Chen@Sun.COM>
2010-03-31 08:21:17 +01:00
Chris Wilson
be4ffa9df2 doc: Fix some missing '%' in gtk-doc comments 2010-03-30 18:31:38 +01:00
Chris Wilson
7ab350378e Silence enumeration warnings following addition of RGB16_565 2010-03-30 18:31:34 +01:00
Chris Wilson
d901692a55 scaled-glyph: Allow removal info fields.
Pushed a fraction of a second too soon... Update the
scaled_glyph->has_info if the backend clears any field as well.
2010-03-30 15:31:32 +01:00
Chris Wilson
5c4b6d520b xcb: Cache whether we have already check a glyph for size.
Avoid repeated cairo_scaled_glyph_lookup() and checking of sizes if we
have already seen this glyph in this run.
2010-03-30 15:28:37 +01:00
Chris Wilson
1c76e3e9ad scaled-font: Optimize cairo_scaled_font_lookup()
By tracking which fields of information are already available on the
scaled_glyph we can more efficiently determine if we already have the
requested fields. This reduces from about 6 conditionals to one, and
reduces the function overhead by ~20% -- which has a measurable
improvement on glyph benchmarks.
2010-03-30 15:28:37 +01:00
Chris Wilson
d2ec151e49 perf/micro: Exercise different sizes and antialising modes with glyphs 2010-03-30 15:28:37 +01:00
Chris Wilson
72481acf0d perf: Compute ops per second
Provide a hook for the test to be able to compute the number of ops per
second. For instance, the glyphs test uses it to report the number of
kiloglyph per second Cairo is able to render.
2010-03-30 15:28:37 +01:00
Chris Wilson
2a98d0586c drm/i915: Avoid using another unpreserved temporary
As we may load from a sampler, we can not use on of the unpreserved
temporaries to store the intermediate colour result.
2010-03-28 18:49:16 +01:00
Chris Wilson
26f963557b drm/i915: Normalize spans opacity value
On the generic path I forgot to rescale the alpha value into [0,1].
2010-03-28 18:49:16 +01:00
Chris Wilson
97f8c20727 boilerplate: Create an image16 target
In order to exercise the newly restored r5g6g5 support, we need to
create an appropriate surface and feed it through the test and
performance suites.
2010-03-27 21:53:55 +00:00
Oleg Romashin
022291be1c Add back support for CAIRO_FORMAT_RGB16_565
Due to slow memory speed, 16bpp color depth is still very popular on mobile
devices. Maemo5 is also using 16bpp color depth.
2010-03-24 13:12:25 -04:00
Chris Wilson
36e12b1952 subsurface: Ignore return from _cairo_clip_init_copy()
The return is just a hint that the clip is empty, however we are about
to immediately apply the surface clip and so do not care for an
'optimised' path.
2010-03-24 12:14:20 +00:00
Chris Wilson
e356e5d18b recording: Fix leak of clip from snapshots of recording surfaces. 2010-03-24 11:38:19 +00:00
Chris Wilson
5b4885f693 clip: propagate the no-clip through the copy. 2010-03-24 11:25:29 +00:00
Chris Wilson
b3e0393161 clip: Don't reduce all-clip to no-clip. 2010-03-24 11:21:36 +00:00
Chris Wilson
b12114f296 snapshot: Finish the clone.
Kill ref cycles from snapshots patterns by explicitly calling finish on
the cloned surface.
2010-03-24 11:08:38 +00:00
Chris Wilson
db913d731e xcb: Ensure that we own the glyph cache before use.
Sigh. One day, I will enable multiple glyph caches to be attached to a
scaled font, but for today, simply avoid the crash.
2010-03-24 10:16:58 +00:00
Chris Wilson
6da3cea356 scaled-font: Destroy the old surface when replacing scaled_glyph->recording 2010-03-23 20:53:11 +00:00
Chris Wilson
548092fe8c script: Free the surface/font bitmaps. 2010-03-23 20:08:36 +00:00
Chris Wilson
83d1bd9f37 script: Manually unlink font entries upon destruction
As the device is already finished, we can not lock it without raising an
error, so we have to open code the destruction of the font entries.
Fortunately we can make several simplifying assumptions about the
required cleanup as we know the device is also being destroyed.
2010-03-23 20:04:10 +00:00
Chris Wilson
cccf6753ab script: More acquire device fixes.
We also need to acquire the device upon finish, similar surface creation
and the pagination functions, i.e. the other times outside of the
drawing ops that must modify the shared context/device.
2010-03-23 19:45:35 +00:00
Chris Wilson
25a77b263d boilerplate: Cleanup the list of backends upon shutdown. 2010-03-23 16:49:21 +00:00
Chris Wilson
1ddcd5cf31 clip: Remove the redundant _cairo_clip_init_rectangle()
As _cairo_clip_init_rectangle() is equivalent and more importantly more
clearly written as:
  _cairo_clip_init(&clip);
  if (status = _cairo_clip_rectangle(&clip, &rect)) {
     _cairo_clip_fini(&fini);
     return status;
  }
perform the transformation and in the process catch a few mistakes along
error paths.
2010-03-23 16:43:39 +00:00
Chris Wilson
61ad28fe7d device: Add language binding interfaces.
Damien Carbonne reported that cairo_device_t lacked the language binding
hooks normally associated with cairo objects. So add the missing
get_reference_count, get_user_data and set_user_data.
2010-03-23 10:44:16 +00:00
Chris Wilson
8a8c2f6c28 cairo: Typos in docs.
A couple of typos reported by Damien Carbonne.
2010-03-23 10:35:17 +00:00
Chris Wilson
4c55c87478 image: Free traps after conversion from boxes. 2010-03-23 10:35:17 +00:00
Chris Wilson
07f7bddc30 xcb: Free traps after conversion from boxes. 2010-03-23 10:35:13 +00:00
Chris Wilson
181403fb53 test/clear-source: Free source after use. 2010-03-23 09:38:59 +00:00
Chris Wilson
35432e37c2 xcb: Destroy reference to clip surface after use. 2010-03-23 09:35:51 +00:00
Chris Wilson
98e3dfbb89 xcb: Relinquish the xcb connection on finish. 2010-03-23 09:35:31 +00:00
Chris Wilson
638cae3bde xcb: Fix leak of clip rectangle during show-glyphs. 2010-03-23 08:25:13 +00:00
Chris Wilson
1d4ad78774 test/pthread-same-source: Free source after use. 2010-03-23 08:20:49 +00:00
Chris Wilson
bfc027ac6d test/clip-image: Free image after use. 2010-03-23 08:16:57 +00:00