summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2009-09-08[build] Improve handling of missing test apparatusChris Wilson13-11/+52
Improve detection, reporting and disabling of test backends when we lack the required libraries and utilities.
2009-09-08[gl] Supply extents for acquire source imageChris Wilson1-1/+5
I have no idea how we survived for so long without supplying the source extents...
2009-09-06[xlib] Protect ourselves from liars that claim to have a 64k windowChris Wilson1-2/+25
Found using webkit, who attempt to paint an width X page height window. Please, please clip large windows to the visible area. Thanks.
2009-09-05[configure] Add option to disable trace.Chris Wilson7-4/+27
Some environments may be broken beyond our capabilities to detect, or maybe the user is just insane and doesn't want to build my nice shiny cairo-trace. Whatever, give them the option to choose: $ ./configure --disable-trace
2009-09-05[perf] Move the calibration to its own functionChris Wilson1-30/+41
Improve code clarity and whatnot.
2009-09-05[perf] Add a fast-and-sloppy mode to cairo-perf.M Joonas Pihlaja2-20/+42
A new -f option to cairo-perf reverts to a fast run mode for quick performance overviews. The number of milliseconds each iteration of a test is run for can be overriden using the new CAIRO_PERF_ITERATION_MS environment variable. The default remains 2000 ms/iter.
2009-09-05[boilerplate] Support wildcard ? in CAIRO_TEST_TARGET{,_EXCLUDE}.M Joonas Pihlaja1-4/+6
Useful for running tests only for a given content type.
2009-09-05[boilerplate] Support giving content in CAIRO_TEST_TARGET{,_EXCLUDE}.M Joonas Pihlaja1-4/+57
Sometimes it's convenient to run the regression or performance tests against a given target with a given content. Now we accept an optional content specifier as a suffix .<content> on a target name, where <content> is rgb or rgba.
2009-09-05[test] Reorder dash-infinite-loop to not hit a runaway allocation.M Joonas Pihlaja1-1/+1
This test is annoying enough as it is what with it wedging the test suite and all. There's no reason why it should DOS the running box as well by sitting in a loop allocating like mad.
2009-09-04[test] Add large-source-roi.ref.png to test/Makefile.amM Joonas Pihlaja1-0/+1
Oops.. forgot to add it to the build files too
2009-09-04[gl] compile fix.Chris Wilson1-1/+2
Compiled fine during testing -- only I forgot I hadn't enable the gl surface.
2009-09-04[xlib] Enable pad_reflect by defaultChris Wilson1-7/+12
If the XServer claims to support the required Render extension then send it the operations. However for the cases where we know it does not work, i.e. the current and previous generations (<=1.6) of Xorg servers, enable the buggy_pad_reflect fallbacks.
2009-09-04[test] Add unbounded variants of clip-{fill,stroke}Chris Wilson18-0/+223
Add a couple of tests to exercise a bug that Joonas spotted that I had introduced with the clip-reduction scheme - namely that I had incorrectly removed the clip on unbounded operations.
2009-09-04[fallback] Only eliminate the clip if the operation is boundedChris Wilson1-15/+42
For unbounded operations we still need to pass along the clip in order to correctly limit the extents of the operation.
2009-09-04[perf] Use milliseconds by default in cairo-perf-diff-filesChris Wilson1-5/+8
Necessary when comparing performance reports from different machines (or even at different CPU states).
2009-09-03[win32] Remove unused clone_similar()Chris Wilson2-57/+2
The win32 backend handles surface sources directly and never calls _cairo_pattern_acquire_surface() which is the only other possible user of clone_similar().
2009-09-03[mutex] Hook into pthread lastChris Wilson1-23/+24
Check for native mutex types before hooking into pthread, as this workarounds broken builds on mingw that confuse us by including the pthread header file.
2009-09-03[gl] Allocate small number of rectangles on the stackChris Wilson1-14/+29
FillRectangle is most frequently used to fill an entire imagee with the background colour, i.e. with just a single, or few, rectangle. Avoid heap allocation for this common case by allocating enough space for 4 rectangles (vertices+colors) on the stack.
2009-09-03[gl] Assert that the error is impossible.Chris Wilson1-2/+2
As we created the image, it should not need coercing into a suitable format and so we should be able to upload it without failure.
2009-09-03[gl] Remove reference to depth_stencil_texChris Wilson2-3/+0
We no longer use a depth-stencil, so remove the vestigial reference.
2009-09-03[test] Fix the order of random points random-intersections-curves*.M Joonas Pihlaja2-14/+20
The calls to uniform_random() to get the curve points were in the function arguments, but argument order evaluation is compiler implementation dependent.
2009-09-03[image] Check for out of bounds image surface sizes in constructors.M Joonas Pihlaja4-6/+29
The image surface code doesn't reliably work on images larger than 32767 in width or height. This patch makes the image surface constructors fail by returning a surface in the CAIRO_STATUS_INVALID_SIZE state when given negative or too large dimensions so that client code gets a prompt and correct error rather than flaky rendering on large images.
2009-09-03[test] Allow tests to XFAIL by putting the cairo_t into an error state.M Joonas Pihlaja1-7/+7
The test runner was extra strict about never letting a test put the cairo_t into an error state, and never would it check for the expectedness status of the failure. This patch moves the check for a test being an XFAIL above the check on the cairo_t's final status.
2009-09-03[xlib] solid pictures should only be 1x1Chris Wilson1-1/+1
Creating an widthxheight solid picture for using with RenderCompositeTrapezoids defeats the optimization with the xserver that checks for a solid alpha pattern. The checks it performs are for CONTENT_ALPHA, Repeat, 1x1 and value == 0xff.
2009-09-03[polygon] Compute the limit of the limits slightly more efficientlyChris Wilson1-12/+12
Initialize the bbox to the first limit, as frequently there will only be a single (or at least a small number) limit.
2009-09-03[boilerplate] Handle errors whilst creating GL surfaceChris Wilson2-13/+14
2009-09-03[polygon] Fix discard with non-banded disjoint clip boxesChris Wilson2-5/+25
The early discard checked if the line was below the last clip-box, or if above the first. However, the clip-boxes are only sorted on by the bottom (not the strict XY-banded sort of the regions) and so this was erroneously discarding lines.
2009-09-03[test] Add clip-disjointChris Wilson5-0/+93
Soeren found another bug (thanks Soeren!) in the clipping code - as reproduced by this test case.
2009-09-02[script] Always create a fallback fontChris Wilson1-19/+27
In order to get a baseline for win32 performance testing, always create a font so that the trace can be replayed. Not ideal, but I feel this the pragmatic solution for judging the performance differentials before I can work out a better solution for loading typ42 fonts.
2009-09-02[script] Attempt to select a font if ! CAIRO_HAS_FT_FONTChris Wilson1-0/+106
In order to enable replay of traces on machines that do not use FreeType as the native font system, we need to convert a type42 font into something similar. Currently the fallback is just to select a font with the same name - this ignores weight and slant, and many other details.
2009-09-02[boilerplate/test] Use numerical equality not string equalityChris Wilson2-2/+2
test == != -eq
2009-09-02[build] Fix typos in prototype warnings.M Joonas Pihlaja1-1/+1
The -Wstrict-prototypes and -Wmissing-prototypes warnings weren't actually in use due to typos.
2009-09-02[build] Hush the Solaris compiler about enum abuse.M Joonas Pihlaja2-2/+27
Sun Studio 12 doesn't like it when we mix our enum values and types. We do that a lot on purpose so the warnings from compiles were very verbose.
2009-09-02[build] Refine the -Wno-attribute test to check our use cases.M Joonas Pihlaja3-13/+41
We don't actually check that -Wno-attribute does what we think it does. On clang it doesn't since it happily seems to recognize but ignore the attribute. This patch factors out a silent version of CAIRO_CC_TRY_FLAG which accepts an optional program argument and actually tests that the compiler doesn't produce any warning messages. It is then used to check that -Wno-attribute doesn't complain when the __warn_unused_result__ attribute is applied to void functions or variables.
2009-09-02[constructors] Guard against being called without any input files.M Joonas Pihlaja2-2/+12
The make-cairo-(test|boilerplate)-constructors scripts ought never to be called without arguments lest we are left constructorless.
2009-09-02[trace] Check for __builtin_return_address explicitly.M Joonas Pihlaja2-1/+13
Some other compilers such as clang and icc support the __builtin_return_address() intrinsic as well, so we don't need to check for __GNUC__ >= 3 only.
2009-09-02[trace] Replace an open coded test for matrix identity.M Joonas Pihlaja1-4/+1
The code has a _matrix_is_identity() function we can use instead of open coding the same test.
2009-09-02[trace] Don't crash on unknown enums values.M Joonas Pihlaja1-141/+172
If the tracer encounters an unknown enum value it ought not to crash. Theis patch replaces the idiom of looking up a name for an enumerated value directly from a table by a switch statement. As a bonus we get warnings from the compiler when the enums are updated in cairo.
2009-09-02[trace] Check for object stack underflow.M Joonas Pihlaja1-2/+24
If the tracer's object stack underflows we want to know about is as soon as possible. This patch adds checks against the stack overflowing and aborts the program with an object stack dump if it does.
2009-09-02[NEWS] Thank the AuroraUX team for facilitating Solaris testing.M Joonas Pihlaja1-0/+5
2009-09-02[trace] Get the tracee program name from the environment.M Joonas Pihlaja2-13/+21
Support non-Linux systems which don't have a /proc/self/cmdline by transferring the application name given to cairo-trace via an environment variable CAIRO_TRACE_PROG_NAME.
2009-09-02[xlib] Remove stray codeChris Wilson1-11/+2
Grr. Should have spotted this before pushing - remove the addition of the superfluous code.
2009-09-02[xlib] Eliminate GC clippingChris Wilson4-145/+116
Eradicate the use of clipping with GC. By never using clipping, we never have to worry about retrieving a dirty clip from the GC cache.
2009-09-02[test] Add clip-imageChris Wilson4-0/+96
Exercise the XCopyArea() paths under clipping - whilst modifying that code I noticed that it was not being exercised by the test suite.
2009-09-01[xlib] Make xlib_display_t private and rename xlib_screen_info_tChris Wilson5-206/+339
The issue Joonas was trying to solve was the unwanted inclusion of the inlines via cairo-freelist-private.h. Unwittingly he included cairoint.h from cairo-xlib-private.h instead, a far more heinous crime as that causes the boilerplate to try to use the hidden, private symbols. Instead we resolve this issue by making the cairo_xlib_display_t structure private to cairo-xlib-display.c and provide functions to manipulate the abstract data type. Whilst in the vicinity, we rename cairo_xlib_screen_info_t to cairo_xlib_screen_t for consistency and cleanliness.
2009-09-01Revert "[freelist] Make _cairo_freepool_alloc_from_new_pool static inline."Chris Wilson2-27/+31
This reverts commit 5a3fa29b370816acb3a08d60e4031ed82c1e4c73 as it breaks the boilerplate when linking with gcc.
2009-09-01[freelist] Make _cairo_freepool_alloc_from_new_pool static inline.M Joonas Pihlaja2-31/+27
The xlib boilerplate includes a cairo private header to be able to disable usage of the render extension. This indirectly includes cairo-freelist-private.h which contains a bunch of static inline functions which use the private _cairo_freepool_alloc_from_new_pool function, but since that is not inline also, it causes an undefined extern which cannot be resolved. The binutils linker doesn't care since the freelist function aren't actually used in the boilerplate but the Solaris linker does. By making the .._alloc_from_new_pool function inline no dangling references are created and linking succeeds.
2009-09-01[wrapper] Avoid a void return gccism.M Joonas Pihlaja1-1/+1
Returning void using the pattern "return func_returning_void(...)" is a gccism not supported by Sun Studio 12.
2009-09-01[ps] Clip meta-surface to desired extents.Chris Wilson1-3/+43
Ensure that the meta surface does not extend beyond the operation by forcing a clip to the extents of the operation. Fixes test/device-offset and test/device-offset-positive
2009-09-01[ps/pdf] Trim patterns to operation extentsChris Wilson4-35/+319
If we have to rasterise a pattern for use by PS/PDF (for example, to satisfy CAIRO_EXTENT_PAD) then only generate an image large enough to cover the operation extents. We ensure tight coverage by computing the extents afresh - we could do this lazily in the future, but we can not rely on the bounds as computed by the analysis surface as for native operations they may not be tight.