Previously we were passing the root window of the same screen.
Letting the X server know the actual Drawable for which we're
trying to be similar allows the X server to be more efficient.
cairo_has_current_point() can be used to determine whether a current
point is defined. We introduce this new symbol with a boolean return
value to avoid the versioning ambiguity of modifying
cairo_get_current_point(). This way we also don't have to map what
should be a routine operation to an error condition as was previously
proposed.
Make sure that we don't test lines that start or end inside the box,
since our algorithm will find intersections on the wrong ends on the
line, and not count them.
The PS Language Reference requires the PS miter to be >= 1.
The PDF Reference does not specify miter limits however acroread fails
to display pages when the miter is < 1. Older versions of ghostscript
crash when the PDF miter is < 1.
The image/meta-pattern is written once. A PS pattern twice the size of
the cairo pattern is created and the surface drawn four times in a
reflect pattern inside the PS pattern.
This fixes the extend-reflect and extend-reflect-similar PS test
failures.
Store the surface size in each pattern and smask group and use this
size when the pattern/group is emitted. This is required as a pattern
or group may be used from a meta surface with a different size to the
PDF surface. However the pattern or group is emitted after the the meta
surface content has been emitted and the surface size has been
restored to the the page size.
This fixes the following pdf test failures:
extend-reflect-similar
extend-repeat-similar
mask
This seems redundant with the recent testing of all test cases
against similar surfaces. Plus, it hasn't had a reference image
anyway which was causing problems with the recent extra checks
for missing reference images.
Before there was just an assert statement here that the
determinant of the matrix was not infinite. That was bogus
since a user-provided can end up here. So instead, do the
correct error propagation of any CAIRO_STATUS_INVALID_MATRIX
error as necessary.
This eliminates the current failure of the invalid-matrix
test case.
Previously we left the return values alone, which set the
user up for a nasty trap, (using potentially uninitialized
values with no indication that there was an error). So now
we initialize these values to 0.0 if the cairo_t is in error.
The fixed functions include:
cairo_path_extents
cairo_stroke_extents
cairo_fill_extents
cairo_clip_extents
cairo_font_extents
Main goal was to be able to pass list of all cairo sources, enabled or
not, to check-doc-syntax.sh such that it doesn't check *.h, *.c, *.cpp
because that can be annoying when bisecting.