Commit graph

6856 commits

Author SHA1 Message Date
Chris Wilson
4c79cd480d [perf] Tweak dragon to hit fill_rectangles().
Add a second dragon path that is pixel-aligned and uses a solid pattern,
so that it can be drawn using fill-rectangles.
2009-01-14 16:51:09 +00:00
Chris Wilson
de9e6b5a3f [perf] Cover linear gradient with 3 stops.
The i915 is able to special case gradients with just 2 color stops to
avoid creating temporary gradient textures, so add a 3 stop linear
gradient to compare the speed difference.
2009-01-14 16:51:09 +00:00
Chris Wilson
7cbc55f216 [perf] Add scaled similar surface sources.
Cover the similar source with min/mag scale factors as well, so we can
compare the performance impact with scaled image sources. This is useful
to distinguish between transport overhead and transform cost.
2009-01-14 16:51:09 +00:00
Chris Wilson
afce1cfe98 [scaled-font] Avoid repeated lookup of the same unicode during text->glyphs
Performing the unicode to index is quite expensive, the
FcFreeTypeCharIndex() taking over 12% in the cairo-perf text benchmarks.
By adding a simple cache of translated unicode indices, we save around 25%
of the lookups during benchmarks, with a relative reduction in runtime.
2009-01-14 16:51:08 +00:00
Chris Wilson
49eca78a42 [test] Add a huge-radial test case.
Also test the handling of radial gradients with large radii.
2009-01-14 16:51:08 +00:00
Chris Wilson
7709d1d9d4 [test] Add fill-image.
A filled equivalent of stroke-image, that checks that the pattern
matrices are applied correctly during fills - useful with the
segregation between fills and strokes introduced by spans.
2009-01-14 16:51:08 +00:00
Chris Wilson
5605e4bfcd [test] Propagate failure from painting large-source-roi
Use cairo_get_target() to propagate any failure when creating the
large-source.
2009-01-14 16:51:08 +00:00
Behdad Esfahbod
59a14f6223 Comment win32 maintainer-clean files again 2009-01-10 13:09:06 -05:00
Søren Sandmann Pedersen
cc51191739 Uncomment win32 maintainer-clean files to make Makefile.am syntactically correct 2009-01-10 12:13:40 -05:00
Behdad Esfahbod
06deaa98b6 [build] Include all generated win32 build files in the repo
So a git clone can be built on win32.  The files only change after adding
new backends.
2009-01-09 15:55:24 -05:00
M Joonas Pihlaja
a5c1cdf2b0 [clip] Fix uninitialised status return in _cairo_clip_intersect_mask() for empty extents.
This fixes the clip-all test case crashing for me.
2009-01-05 14:19:42 +00:00
M Joonas Pihlaja
8157bc8a2d [test] Stress test using large source images.
This test attempts to trigger failures in those backend clone_similar
methods that have size restrictions on the resulting image.  It also
triggers errors in scaling down large image surfaces as the image
backend also fails this test.
2009-01-04 04:14:28 +02:00
Chris Wilson
388ae177e4 [boilerplate] Remove CAIRO_BOILERPLATE_LOG()
The variadic macro is only used within boilerplate/ so replace it with a
simple, and portable, call to fprintf.
2009-01-03 22:56:17 +00:00
Chris Wilson
5f816ccd25 [boilerplate] Redefine DEBUG() for portability concerns
Behdad warned that using an empty variadic macro was non-portable.
2009-01-03 22:54:14 +00:00
Chris Wilson
acb2717372 [quartz] Define RTLD_DEFAULT
RTLD_DEFAULT is a gnu-ism (at least according to the manpage on my linux
system) so declare _GNU_SOURCE before including dlfcn.h and failing that
provide our own definition.
2009-01-03 21:53:15 +00:00
Chris Wilson
ff1f5de551 [boilerplate] Suppress xlib warnings on stderr
If we cannot test the xlib backend simply because there is no Display,
just report UNTESTED and do not clutter the output with superfluous
warnings [see the output from the buildbots for an example]. However,
keep the warnings around so that a developer can re-enable them
and so simply move them to a new "lower priority" macro.
2009-01-03 21:53:09 +00:00
Chris Wilson
75538962c8 [boilerplate] Check the return of pclose()
pclose() returns the child exit status, so we can use that to detect
errors in the convertor process.
2009-01-03 21:52:58 +00:00
Chris Wilson
333158ec85 [configure] Replace awk comparator with an aclocal version
As reported in https://bugs.freedesktop.org/show_bug.cgi?id=19283, the
fallback freetype version compare is broken inside the configure script as
the $1-$3 arguments are interpreted as the script is constructed. To avoid
making that awk comparison any more complicated, we import a version compare
from the autoconf archives - such that we have a reusable macro for the
furture.
2009-01-02 15:44:52 +00:00
Chris Wilson
dc33ae2461 [boilerplate] Use pclose() after popen
Joonas pointed out that we should be using pclose() on a stream returned
by popen().
2009-01-02 15:44:52 +00:00
Chris Wilson
f230ce7658 [path] Fix typo in bounds for empty path.
We set the width to be zero, twice, and the height not even once!
2009-01-02 15:44:51 +00:00
Chris Wilson
163c326c82 [test] Free test name
Adding the missing free for the converted test name.
2009-01-02 15:44:51 +00:00
Chris Wilson
dd65be740c [test/pdf-mime-data] Free data on error paths.
Cleanup the allocated buffers on error.
2009-01-02 15:44:51 +00:00
Chris Wilson
65f9760d66 [toy-font-face] Return defaults for error objects.
Similar to the behaviour of the other objects, we return the default
conditions if the object is in any error (and not just a nil object).
2009-01-02 15:44:50 +00:00
Behdad Esfahbod
d478d5ed5c [doc] Give a small hint about Twin font
Though, the details are not documented yet.  I'm not sure how much of it
I do want to document.
2009-01-02 06:51:15 -05:00
Chris Wilson
a023104400 [trace] Adopt _cairo_dtostr
In order to have locale-independent output of decimal values, we need to
manually transform such numbers into strings. As this is a solved problem
for cairo, we adopt _cairo_output_stream_printf() and in particular the
_cairo_dtostr() routine for our own printf processing.
2009-01-02 10:36:52 +00:00
Chris Wilson
c601f30843 [cairo] Early return if we attempt to set the same colour.
Profiling a silly video renderer that called set-source; rectangle; fill;
for each pixel, we can shave 5% off the cairo overhead by introducing an
early return if we attempt to reset the current colour.
2009-01-02 09:53:27 +00:00
Chris Wilson
fb3522f33a [os2] Fix memory leak of surface on error path
Of we fail to create the mutex, free the surface before returning the
failure.

Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19208.
2009-01-02 09:53:27 +00:00
Chris Wilson
8d23c3a6c2 [quartz] Delay allocation of string until after guard.
Fixes a memory leak should we bail due to the version of Quartz being
insufficient.

Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19209.
2009-01-02 09:53:27 +00:00
Chris Wilson
9c9ed8f0b5 [scaled-font] Post-process hash value.
Mix the bits within the hash value to reduce clustering.
2009-01-02 09:53:26 +00:00
Chris Wilson
555dd6b97e [scaled-font] Switch to a constant loop for hashing.
As we only use the FNV hash for hashing matrices, expose the constant size
to the compiler so that it can perform its magic.
2009-01-02 09:53:26 +00:00
Chris Wilson
f5274f5847 Iterate over hash table using foreach() in destructors.
Don't use the remarkably inefficient _cairo_hash_table_random_entry() to
remove all entries from the hash table!
2009-01-02 09:53:26 +00:00
Chris Wilson
1c4ea84b24 [cairo] Early return if we attempt to set the same scaled_font
If the application calls cairo_set_scaled_font() with the current
scaled font, we can return early as it is a no-op.
2009-01-02 09:53:26 +00:00
Chris Wilson
b661f3d27b [cairo] Embed a second gstate.
Experiment with embedding a second gstate into the initial context to
reduce allocations.
2009-01-02 09:53:25 +00:00
Chris Wilson
8abd21bd3a [script] Call the context creation hook
Hook in the creation hook so applications can record or even modify the
contexts used in replay.
2009-01-02 09:53:25 +00:00
Chris Wilson
2c9323d394 [script] more targets 2009-01-02 09:53:25 +00:00
Chris Wilson
fd96cea4fe [script] Improve array construction.
Limit the memory allocation to the initial array size and perform a direct
copy from the operand stack to the array.
2009-01-02 09:53:24 +00:00
Chris Wilson
ecb8dce27c [script] Recreate surface content.
Use the content recorded in the trace, defaulting to COLOR_ALPHA, to
determine the replayed surface type.
2009-01-02 09:53:24 +00:00
Chris Wilson
d21529b9ef [trace] Correct escaped characters in string literal.
Laziness caused the control character to be used instead of its
replacement in the escaped string!
2009-01-02 09:53:24 +00:00
Chris Wilson
ca39c4bf7f [trace] Correct a couple of typos.
A couple of minor typos in the escaped characters strings.
2009-01-02 09:53:24 +00:00
Chris Wilson
1f2fec7388 [trace] Fix OBO in emit_glyphs()
The largest index that will fit within 8 bits is 255 not 256!
2009-01-02 09:53:23 +00:00
Chris Wilson
7ebe9e6837 [trace] Minor tidy.
Improve scoping of variables.
2009-01-02 09:53:22 +00:00
Chris Wilson
931556005a [trace] Remove the forced switching to C locale
This interferes with the application being traced. It is not clear from
printf(3) whether "%.f" is locale dependent or not - but until we have a
failure do not break applications unnecessarily!
2009-01-02 09:53:22 +00:00
Chris Wilson
d0f41b92bf [trace] Do not force the output filename.
Handle the case of tracing an application that spawns it own graphical
children but using the autonaming facility within cairo-trace. Currently
the traced process tree would all attempt to write to the same file,
creating a broken trace. This means sacrificing the display of the output
name, but allows use for a wider range of applications.
2009-01-02 09:53:21 +00:00
Chris Wilson
19e8c5c7f4 [test] Fix mismatched free.
A couple of strings allocated using glib functions but freed with system
malloc.

Reported: http://bugs.freedesktop.org/show_bug.cgi?id=19210.
2009-01-02 09:53:21 +00:00
Chris Wilson
6662eede2a [perf] Fix errors reported by cppcheck
Trivial mistakes, identified in bugs
http://bugs.freedesktop.org/show_bug.cgi?id=19206 and
http://bugs.freedesktop.org/show_bug.cgi?id=19207.
2009-01-02 09:53:20 +00:00
Chris Wilson
8419c4f124 [perf] Correct another reference to '<cairo>'
I think that's the last use of the old internal name for twin!
2009-01-02 09:53:20 +00:00
Behdad Esfahbod
14d94d9354 Fix various README typos 2009-01-02 02:56:38 -05:00
Behdad Esfahbod
28a72648ba [gstate] Change the glyph dropping safety margin from 2em to 10em
The small margin caused bugs with math fonts.  See:
https://bugzilla.mozilla.org/show_bug.cgi?id=460023
2008-12-30 13:48:47 -05:00
Chris Wilson
fa63c43532 [spline] Be pedantic and propagate errors.
We know that the current users will always return SUCCESS, but propagate
the status return for future users.
2008-12-29 16:11:29 +00:00
Chris Wilson
7df082dd8a [test] Update twin reference images
Subsequent to recent tweaks, update the reference images for twin.
2008-12-29 16:08:12 +00:00