Commit graph

3035 commits

Author SHA1 Message Date
M Joonas Pihlaja
00d7b6acdd test: tessellator event comparator test case for degenerate edges.
There's currently a regression bug in the tessellation code from
switching to the new tessellator.  The bug is caused by
confusion in the comparator used to order events when there are
degenerate edges.  This test is derived from the zrusin-another
performance test case.
2006-12-06 05:58:44 +02:00
Carl Worth
c92f23caa5 ROADMAP: Add _cairo_lround bug for 1.3.6. Note some completed items for 1.4.0 2006-12-05 11:14:49 -08:00
M Joonas Pihlaja
4057a98f88 cairo-perf-diff-files: Don't segfault reading cooked perf reports.
Fixes cairo-perf-diff-files for non-raw cairo-perf reports.  Similar
to the patch on the mailing list, only applied to the caller of
_cairo_stats_compute():

http://lists.freedesktop.org/archives/cairo/2006-December/008720.html
2006-12-05 06:02:45 +02:00
Mathieu Lacage
a4f5463cdd bugfix: fix cairo-wideint.c uint64_t usage and const return qualifiers
These patches were sent to the cairo mailing list by Mathieu Lacage
<Mathieu.Lacage@sophia.inria.fr>:

http://lists.freedesktop.org/archives/cairo/2006-December/008741.html

  _cairo_uint_96by64_32x64_divrem(): fixes misuse of the uint64_t type
  and cairo-wideint-private.h functions.

http://lists.freedesktop.org/archives/cairo/2006-December/008742.html

  Remove const qualifiers from return types from cairo-wideint.c functions.

http://lists.freedesktop.org/archives/cairo/2006-December/008747.html

  Fixes a typo in cairo-wideint-private.h: _cairo_uint128_to_int128_
  had an extra trailing underscore.
2006-12-05 03:59:11 +02:00
Dan Amelang
94e086b7b9 [configure] Fix --disable-some-floating-point to force value to 'no' if none given
As suggested by Behdad here:

    http://lists.freedesktop.org/archives/cairo/2006-December/008700.html
2006-12-02 11:24:35 -08:00
Dan Amelang
392f27bf2b [configure] Add -a option to grep calls in AX_C_FLOAT_WORDS_BIGENDIAN
This fixes bug #9124 reported here:

    https://bugs.freedesktop.org/show_bug.cgi?id=9124
2006-12-02 11:08:48 -08:00
Dan Amelang
3dbe468fd6 [perf] Provide watered-down implementations of getline and strndup for
building on non-GNU toolchains.
2006-12-01 14:12:16 -08:00
Dan Amelang
d5fcbfc29f Purge cairo-test of all calls to round()
Although round() is in the C99 standard, it isn't available in all
toolchains on which cairo is compiled (VC++, for example).
2006-12-01 12:46:55 -08:00
Dan Amelang
cb9a3c2640 Add configure option --disable-some-floating-point
See discussion here: http://lists.freedesktop.org/archives/cairo/2006-November/008602.html
2006-12-01 12:41:55 -08:00
Carl Worth
7fb4e97873 BIBLIOGRAPHY: Add Joseph O'Rourke's book as recommended by Rafael Villar Burke 2006-11-30 09:15:00 -08:00
Carl Worth
7fbe594d3d Add a textbook recommendation to the bibliography
Thanks to Mathieu Lacage for the recommendation of:

	"Computational Geometry, Algorithms and Applications", M. de
	Berg, M. van Kreveld, M. Overmars, M. Schwarzkopf
2006-11-30 08:43:27 -08:00
Carl Worth
170d35b034 pdiff: Add missing newlins at end of files. 2006-11-29 23:01:30 -08:00
Carl Worth
c863315285 Hook up Makefiles for perceptualdiff. 2006-11-29 22:55:37 -08:00
Carl Worth
6e06b68452 Remove all libtiff-related code by #ifdef 2006-11-29 22:55:31 -08:00
Carl Worth
2b92556abe Use uint32_t instead of the non-standard uint32 2006-11-29 22:55:00 -08:00
Carl Worth
812fd53499 Add perceptualdiff program totest/pdiff.
The perceptualdiff program was written by Hector Yee with contributions
from Scott Corley and Mick Weiss. It is hosted at http://pdiff.sourceforge.net
The source code added here was obtained by:

	svn co https://svn.sourceforge.net/svnroot/pdiff/trunk pdiff

which gave revision 22 of the source code.

The perceptualdiff program is available under the terms of the GNU GPL,
so I've added a note to COPYING about this program, (and the fact that
it is auxiliary only, and does not affect the license of the implementation
of cairo itself).
2006-11-29 22:40:28 -08:00
Carl Worth
d9fd942e47 Add an initial BIBLIOGRAPHY for cairo 2006-11-29 17:28:54 -08:00
Carl Worth
8f08daade0 RELEASING: Fix typo 2006-11-29 17:28:54 -08:00
Behdad Esfahbod
facffb7ea3 [configure] Remove the pkg-config minimum version requirement
It was added in commit 157663e1fd because there
was a serious bug in the pkg.m4 file from pkg-config 0.18.  However, it was
fixed two days later.  So, instead of requireing 0.18.1 or greater which is
not available on Nokia 770 SDK, we just ignore the broken pkg-config 0.18.
The problem only happens if one runs autogen.sh with against a broken
pkg-config.  Configuring tarballs is not affected.
2006-11-28 19:41:52 -05:00
Behdad Esfahbod
72a4a98346 [test|perf|boilerplate/Makefile.am] Add -I$(top_builddir)/src to INCLUDES
needed to find cairo-features.h when building out of tree.
2006-11-27 13:23:13 -05:00
Carl Worth
9c3b161c70 Bump version to 1.3.5 after making 1.3.4 snapshot 2006-11-22 19:31:56 -08:00
Carl Worth
143c56cb12 Increment cairo version to 1.3.4 2006-11-22 19:15:31 -08:00
Carl Worth
e9dd52a337 NEWS: Add notes for 1.3.4 snapshot 2006-11-22 19:15:00 -08:00
Carl Worth
3329abba39 Add Daniel Amelang and Joonas Pihlaja to the AUTHORS file 2006-11-22 19:11:51 -08:00
Carl Worth
a8f6d27fba Add some missing cairo_private decorators 2006-11-22 18:44:34 -08:00
Joonas Pihlaja
fac3684e68 perf: new-tessellator: Deferred trapezoid generation (first try) 2006-11-22 17:55:54 -08:00
Joonas Pihlaja
6bd72ce74a Sort pointers instead of cairo_bo_events in the tessellator.
We were spending a lot of time in memcpy.
2006-11-22 17:55:54 -08:00
Joonas Pihlaja
b177573b72 Make the skip list check for uniqueness.
This patch removes a redundant call to skip_list_find()
that was being used to detect duplicate intersection events.
Instead, skip_list_insert() now takes an additional parameter
letting it know what to do with duplicates.
2006-11-22 17:55:54 -08:00
Joonas Pihlaja
8bec0bac56 Malloc less using a free list of nodes. 2006-11-22 17:55:54 -08:00
Joonas Pihlaja
de0e327b3d Tweak comparators. 2006-11-22 17:55:54 -08:00
Joonas Pihlaja
67359d7a58 Separate start and stop events from intersections (first try.)
Don't use the skip list for start and stop events, but presort
those first.
2006-11-22 17:55:54 -08:00
Joonas Pihlaja
97f02dca5d Avoid a skip-list lookup when deactivating edges. 2006-11-22 17:55:54 -08:00
Joonas Pihlaja
99f8a5313d Special cases for skip list comparators. 2006-11-22 17:55:54 -08:00
Joonas Pihlaja
fd8cd39cda Use an LFSR instead of random(). 2006-11-22 17:55:53 -08:00
Joonas Pihlaja
d957e59744 Replace the 128 bit divrem by a 96/64 bit one. 2006-11-22 17:55:53 -08:00
Joonas Pihlaja
1da14262ea A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit remainder. 2006-11-22 17:55:53 -08:00
Carl Worth
762bd1330d Make event_queue_insert ignore duplicate intersection events (not duplicate start/stop events)
This fixes the failures of the new tessellator with the 3 tests:
bitmap-font, rectangle-rounding-error, and close-path
The problem was that identical edges from separate polygons
were not being added to the event queue, (because of a check
that was actually only intended to prevent an intersection
event from being scheduled multiple times).
2006-11-22 16:56:51 -08:00
Carl Worth
4cd871b6f3 Switch from old tessellator to new tessellator 2006-11-22 16:56:51 -08:00
Carl Worth
0f7c488906 Adapt new tessellator to match the interface provided by the old tessellator. 2006-11-22 16:56:51 -08:00
Carl Worth
8921f73399 Add new tessellator (unused) in cairo-bentley-ottmann.c
This is the implementation as it cooked in the new-tessellator branch
available from:

	git://people.freedesktop.org/~cworth/cairo

The file here comes from commit eee4faf79900be2c5fda1fddd49737681a9e37d6 in
that branch. It's sitting here not hooked up to anything in cairo yet,
and still with a main function with test cases, etc.
2006-11-22 16:56:51 -08:00
Carl Worth
c2509f8a72 Add skip list implementation (many thanks to Keith Packard)
The files here are copied directly from the standalone skiplist module
available from:

	git clone git://cworth.org/~cworth/skiplist

In particular the files come from the double branch and the following
commit on that branch:

	8b5a439c68e220cf1514d9b3141a1dbdce8af585

Also of interest is the original skiplist module hosted by Keith Packard
that is the original implementation on which these files were based.
Since the cworth/skiplist branched off of keithp's, Keith has also
now implemented a doubly-linked variant which might be interesting for
further simplification of the code. See:

	git clone git://keithp.com/git/skiplist

and the double-link branch there.
2006-11-22 16:56:50 -08:00
Carl Worth
02804773e7 give the big-trap test the XFAIL treatment.
We'll need to rewrite this test (and the way cairo is compiled for
testing) before it can exercise the bug of interest. In the
meantime, let's just give it an "expected failure" status.
2006-11-22 16:52:18 -08:00
Carl Worth
fdbb820ece test: Use round to pass only integers to cairo_show_glyphs (in 3 more tests)
This is the same fix as in the recent commit (166dffc96a)
but for the same idiom that appears in the operator-clear,
operator-source, and unbounded-operator tests. This fixes
the failures that were introduced by the recent switch to
_cairo_lround.
2006-11-22 16:43:45 -08:00
Dan Amelang
11d21dbaa3 Change _cairo_matrix_to_pixman_matrix to use a pixman_transform_t as the template, thus avoiding a forced memcpy 2006-11-22 16:25:54 -08:00
Dan Amelang
8a5e296239 Optimize _cairo_matrix_to_pixman_matrix for the common case of an identity matrix 2006-11-22 16:25:54 -08:00
Dan Amelang
b7cd46ddc2 Add and incorporate _cairo_gstate_transform_glyphs_to_backend
After changing _cairo_gstate_show_glyphs and _cairo_gstate_glyph_path to use
this function, we see a significant speedup due to the elimination of redundant
FP calculations.
2006-11-22 16:25:54 -08:00
Dan Amelang
6cfb4a01e0 Refactor _cairo_matrix_is_integer_translation
Now that we have _cairo_matrix_is_translation, we can change
_cairo_matrix_is_integer_translation to use it and thus reduce code
duplication.
2006-11-22 16:25:54 -08:00
Dan Amelang
ca79307bdf Add _cairo_matrix_is_translation 2006-11-22 16:25:54 -08:00
Daniel Amelang
57fba8d9b6 Replace existing rounding code with _cairo_lround 2006-11-22 16:25:53 -08:00
Daniel Amelang
efb483c3a3 Add _cairo_lround for much faster rounding
This function uses the same "magic number" approach as _cairo_fixed_from_double.
2006-11-22 16:25:53 -08:00