summaryrefslogtreecommitdiff
path: root/src/cairo-wideint.c
AgeCommit message (Collapse)AuthorFilesLines
2011-09-12Introduce a new compositor architectureChris Wilson1-0/+16
Having spent the last dev cycle looking at how we could specialize the compositors for various backends, we once again look for the commonalities in order to reduce the duplication. In part this is motivated by the idea that spans is a good interface for both the existent GL backend and pixman, and so they deserve a dedicated compositor. xcb/xlib target an identical rendering system and so they should be using the same compositor, and it should be possible to run that same compositor locally against pixman to generate reference tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> P.S. This brings massive upheaval (read breakage) I've tried delaying in order to fix as many things as possible but now this one patch does far, far, far too much. Apologies in advance for breaking your favourite backend, but trust me in that the end result will be much better. :)
2011-09-02time: Add cairo_time_t typeAndrea Canciani1-0/+16
Add the cairo_time_t type (currently based on cairo_uint64_t) and use it in cairo-observer and in the perf suite. Fixes the build on MacOS X (for the src/ subdir) and Win32, whch failed because they don't provide clock_gettime: cairo-surface-observer.c:629: error: implicit declaration of function 'clock_gettime' cairo-surface-observer.c:629: warning: nested extern declaration of 'clock_gettime' cairo-surface-observer.c:629: error: 'CLOCK_MONOTONIC' undeclared (first use in this function) ...
2010-04-29Remove excessive semicolonsBenjamin Otte1-1/+1
s/;;/;/ basically
2010-04-27Update FSF addressAndrea Canciani1-1/+1
I updated the Free Software Foundation address using the following script. for i in $(git grep Temple | cut -d: -f1 ) do sed -e 's/59 Temple Place[, -]* Suite 330, Boston, MA *02111-1307[, ]* USA/51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA/' -i "$i" done Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21356
2009-09-15Use __uint128_t and __int128_t if availableSebastian Dröge1-49/+42
GCC uses a peculiar name for a real 128-bit integer on x86-64. Speedups, xlib on a gm45 ======================== poppler 41246.56 -> 35102.82: 1.18x speedup swfdec-youtube 12623.01 -> 11936.79: 1.06x speedup Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2009-08-29Eliminate self-intersecting strokes.Chris Wilson1-34/+0
We refactor the surface fallbacks to convert full strokes and fills to the intermediate polygon representation (as opposed to before where we returned the trapezoidal representation). This allow greater flexibility to choose how then to rasterize the polygon. Where possible we use the local spans rasteriser for its increased performance, but still have the option to use the tessellator instead (for example, with the current Render protocol which does not yet have a polygon image). In order to accommodate this, the spans interface is tweaked to accept whole polygons instead of a path and the tessellator is tweaked for speed. Performance Impact ================== ... Still measuring, expecting some severe regressions. ...
2008-10-06[tessellator] Replace open-coding _cairo_int64_cmp().Chris Wilson1-0/+48
We often use the construct: if (_cairo_int64_lt (A, B) return -1; if (_cairo_int64_gt (A, B) return 1; return 0; to compare two large integers (int64, or int128) which does twice the required work on CPUs without large integer support. So replace it with a single wideint function _cairo_int64_cmp() and therefore allow opportunities to both shrink the code size and write a more efficient comparison. (The primarily motivation is to simply replace each block with a single more expressive line.)
2007-01-20cairo-wideint: Fix to eliminate comparison of signed and unsigned valuesCarl Worth1-1/+3
2007-01-07Spell check the docsBehdad Esfahbod1-1/+1
2006-12-05bugfix: fix cairo-wideint.c uint64_t usage and const return qualifiersMathieu Lacage1-7/+7
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-11-22A 96 by 64 bit divrem that produces a 32 bit quotient and 64 bit remainder.Joonas Pihlaja1-0/+152
2006-06-06Remove all remaining trailing whitespace.Carl Worth1-1/+1
This patch was produced with the following (GNU) sed script: sed -i -r -e 's/[ \t]+$//' run on all *.[ch] files within cairo. Note that the above script would have also created all the changes from the previous commits to remove trailing whitespace.
2006-06-06Remove extraneous whitespace from "blank" lines.Carl Worth1-8/+8
This patch was produced with the following (GNU) sed script: sed -i -r -e 's/^[ \t]+$//' run on all *.[ch] files within cairo.
2006-02-27Remove unused RCS $Id:$ tags.Carl Worth1-2/+1
2005-07-30Replace wide integer divide algorithms with trivial bit-at-a-time code. ↵Keith Packard1-415/+46
Original code was of unclear provenance, this new code is completely different.
2005-06-03Add CODING_STYLE document to standardize on some style issues.Carl Worth1-1/+5
Standardize brace handling around all else clauses according to new CODING_STYLE guidelines.
2005-01-19Remove useless const qualifier from functions returning simple values, ↵Carl Worth1-41/+41
(quiets the warning in gcc4). Thanks to John Ellson <ellson@research.att.com>. Closes bug #2299.
2005-01-11Scale factors shouldn't include mirroring.Keith Packard1-1/+27
int32x32_64_mul and int64x64_128_mul are different from their unsigned compatriots
2005-01-11Fix math library detection to use autotools helperKeith Packard1-17/+29
Remove cache memory usage assertions as single objects can be larger than the cache size Decompose font matrix transformations into a couple of helper routines. Return all metrics in font space. Eliminate compiler warning Expect glyph metrics to be in font space. Compute text extents by fetching one glyph metric at a time, transforming to user space and computing the overall bounding box. use 'sincos' where available. Scale factors now ensure the non-scale transform is area preserving. Scale factors requires another parameter to mark the fixed axis. Change license to LGPL Mark int32x32_64_mul as broken (which it still is) Ensure each glyph is located as close to the specified position as possible interface change to _cairo_matrix_compute_scale_factors
2004-05-28Add WARN_CFLAGS, autodetection for 64/128 bit ints and cairo_wideint.[ch]Keith Packard1-0/+986
Check status return from _cairo_gstate_glyph_extents Quiet compiler warnings about uninitialized variables Switch to alternate exact line intersection code. Add 64/128-bit wide integer arithmetic. Switch to stdint.h types (and new wide types).