Commit graph

4757 commits

Author SHA1 Message Date
Carl Worth
0f2ecb5ec6 Update REFERENCE_IMAGES for distcheck 2008-02-20 08:24:32 -08:00
Carl Worth
ee62a5fad6 Mention that cairo_get_current_point is void again 2008-02-20 08:08:52 -08:00
Carl Worth
118657136d Increment cairo version to 1.5.10 and libtool versioning to 17:0:15 2008-02-20 08:06:39 -08:00
Carl Worth
5aacc54c43 NEWS: Add notes for cairo 1.5.10 2008-02-20 08:02:45 -08:00
Carl Worth
f954db72dd Add svg-specific reference image for mask-alpha
There's no apparent bug here.
2008-02-20 06:24:48 -08:00
Carl Worth
c197c684a6 Update ps-specific reference images for ghostscript 8.61
I was wrong in the previous message where I said I had ghostscript 8.61
installed. I do now, (and "gs --version" says the same thing), and
here are the new reference images.
2008-02-20 05:58:42 -08:00
Carl Worth
8d2d413014 Expand the documentation of cairo/test/README
Add notes on CAIRO_REF_DIR and the version requirements of
poppler and ghostscript necessary for getting no failures.
2008-02-20 05:11:53 -08:00
Carl Worth
4d42f56900 Update ps-specific reference images
Presumably these are due to ghostscript version churn. I don't
know what version was used in the past, but we're going to be
more careful about documenting versions now.

The ghostscript package I used here advertises itself as "8.61"
and "gs --version" reports 8.15.3.
2008-02-20 04:22:58 -08:00
Carl Worth
78b270601c Add poppler-specific reference image for source-clip-scale
This one doesn't have any associated poppler bug report. The
rendering by poppler is totally reasonable, and not problematic
at all with respect to what the test is actually testing for.
2008-02-20 04:04:05 -08:00
Carl Worth
64b7489a50 Add poppler-specific reference image for push-group
This is justified by the following new bug report:

	Incorrect clipping of group object (regression?)
	https://bugs.freedesktop.org/show_bug.cgi?id=14580
2008-02-20 04:04:05 -08:00
Carl Worth
7aaa3e67c5 Add poppler-specific reference images for tests needing EXTEND_PAD
This is justified by the following new bug report:

	Poppler should paint images with CAIRO_EXTEND_PAD
	https://bugs.freedesktop.org/show_bug.cgi?id=14578

The four affected tests are:

	paint-source-alpha
	paint-with-alpha
	rotate-image-surface-paint
	scale-source-surface-paint
2008-02-20 04:04:05 -08:00
Carl Worth
fdd046edcc Add poppler-specific reference image for text-pattern
This is justified with the following new bug report:

	Poppler renders patterned text as black
	https://bugs.freedesktop.org/show_bug.cgi?id=14577
2008-02-20 04:04:04 -08:00
Carl Worth
43302f0408 Re-enable pdf tests with gradients and add poppler-based reference images
This freezes the current (buggy) poppler result in the test suite
so that we will notice any future regressions.
2008-02-20 04:04:04 -08:00
Carl Worth
635fed7767 Re-enable some pdf tests now that poppler has knockout support
We had several pdf tests disabled waiting for this bug fix:

	Poppler does not correctly handle knockout groups
	https://bugs.freedesktop.org/show_bug.cgi?id=12185

That's in place for poppler now, so we're turning the tests
back on. Some of the affected tests now pass perfectly:

	over-above-source
	over-around-source
	over-below-source
	over-between-source

Some just needed new reference images:

	operator-clear
	clip-operator-pdf-argb32

The remaining tests still fail, but none of the failures can
obviously be ascribed to just poppler problems:

	clip-operator-pdf-rgb24
	operator-source
	unbounded-operator

The first two have some serious problems, while in the case
of unbounded-operator the problem is extremely minor (a white
grid appears in the background where the reference image is
all black).
2008-02-20 04:04:04 -08:00
Carl Worth
98189d860e svg: Add support for flattening SOURCE painting when there's nothing beneath it
This avoids unnecessary rasterization in many cases when using
cairo_surface_create_similar with an SVG surface. Because of that
it eliminates test-suite failures for the -similar cases where we
have svg-specific reference images. Namely:

	font-matrix-translation, ft-text-vertical-layout-type1,
	ft-text-vertical-layout-type3, mask, meta-surface-pattern,
	paint-source-alpha, paint-with-alpha, rotate-image-surface-paint,
	scale-source-surface-paint, source-clip-scale, text-pattern,
	text-rotate

In all of these cases the test suite was kindly noticing that we
weren't getting the same 'native' SVG output that was desired.
2008-02-20 04:04:04 -08:00
Carl Worth
e7c6e291a6 Add svg-specific reference images for meta-surface-pattern test 2008-02-20 04:04:04 -08:00
Carl Worth
a186741221 cairo-svg: Make operation_supported depend on analyze_operation instead of the other way around.
This prepares for analyze_operation to be able to return more than
just two values, (which will allow the svg backend to take advantage
of CAIRO_INT_STATUS_FLATTEN_TRANSPARENCY).
2008-02-20 04:04:04 -08:00
Carl Worth
8f11c4583f Revert "[meta-surface] Adjust tolerance when replaying to surfaces with device scale"
This reverts commit 7f21bfb0a8.

We don't yet have consensus on whether this is a good change or not.
So for now, we're favoring the existing behavior until we can work
that out.
2008-02-20 04:04:04 -08:00
Carl Worth
1747718406 Add a spline to the degenerate-pen test case
This was triggering an infinite loop (with 24.8 fixed-point) just before
the previous fix.

NOTE: I usually put bug demonstrations just before the fixes, but this
one was quite harsh---not only was cairo looping infinitely, but it
was appending to an array on each iteration---so not kind at all.
2008-02-20 04:04:04 -08:00
Carl Worth
d6d81c92b5 Eliminate a potential infinite loop in spline stroking
Sometimes > rather than >= can make a bug difference. The infinite loop
was noticed here:

	Infinite loop when scaling very small values using 24.8
	http://bugs.freedesktop.org/show_bug.cgi?id=14280

Note that that particular test case only exposes the infinite
loop when using 24.8 instead of 16.16 fixed-point values by
setting CAIRO_FIXED_FRAC_BITS to 8.
2008-02-20 04:04:04 -08:00
Carl Worth
770b058c9e Remove _cairo_slope_[counter_]clockwise
These two functions were hiding away some important details
about strictness of inequalities. Also, the callers differ
on the strictness they need. Everything is cleaner and more
flexible by making the callers just call _cairo_slope_compare
directly.
2008-02-20 04:04:04 -08:00
Carl Worth
2d22d698d3 Make _cairo_slope_compare return a non-zero result for slopes that differ by pi
This was an initial attempt to fix the infinite loop bug
described here:

	Infinite loop when scaling very small values using 24.8
	http://bugs.freedesktop.org/show_bug.cgi?id=14280

This doesn't actually fix that bug, but having a more robust
comparison function can only be a good thing.
2008-02-20 04:04:03 -08:00
Chris Wilson
9292c0a1b5 [gitignore] Ignore cairo-no-features.h
Add the autogenerated header to the ignore list.
2008-02-20 10:57:14 +00:00
Chris Wilson
e6a8768a04 [cairo-scaled-font-subsets] Fix memleak on failure to reserve .notdef glyph.
Remember to destroy the sub_font if we fail to reserve the .notdef glyph
during construction.

Whilst in the vicinity, adjust the function prototype to remove
duplicated calls to _cairo_error().
2008-02-20 10:57:04 +00:00
Chris Wilson
e208f31236 [cairo-surface] Check surface status on internal paths as well.
Return any error status on the surface to the caller.
2008-02-20 10:56:53 +00:00
Chris Wilson
1d59daecfe [cairo-pdf-operators] Cleanup word_wrap_stream
Ensure that the stream is destroyed on the error paths.
2008-02-20 10:56:37 +00:00
Chris Wilson
aac5650bee [pdf-operators] Missing private markup.
Fixup make check by adding the required cairo_private markup.
2008-02-20 10:56:24 +00:00
Adrian Johnson
eaaa1415a9 Change PDF newline characters from \r\n to \n
The PDF backend has always used "\r\n" for the newline character.
There was no particular reason for this choice. PDF allows "\n", "\r",
or "\r\n" as the end of line marker.

Since the PS backend (which uses "\n") has started sharing
cairo-pdf-operators.c with the PDF backend, the PS output has been
getting mixed "\n" and "\r\n" newlines.

Fix this by changing the PDF backend to use "\n".
2008-02-20 21:05:23 +10:30
Bertram Felgenhauer
24c319fbae [perf] add tests for magnified and minified image sources.
With this change, cairo's performance testsuite will catch performance
regressions in pixman's fbFetchTransformed path.
2008-02-19 22:19:44 +01:00
Antoine Azar
21049a9a5e Added cairo-misc.c to makefile 2008-02-19 00:17:47 -05:00
Vladimir Vukicevic
f2d21e7382 [stroker] fix _compute_normalized_device_slope to return correct sign
The optimization to avoid sqrt() for horizontal/vertical lines in
_compute_normalized_device_slope was causing us to return a negative
magnitude with a positive slope for left-to-right and bottom-to-top
lines, instead of always returning a positive magnitude and a slope
with an appropriate sign.
2008-02-18 17:18:51 -08:00
Adrian Johnson
8fb624dbf2 Use correct prefix for _cairo_pdf_operators_stroke
s/operator/operators/
2008-02-17 21:33:25 +10:30
Adrian Johnson
d2a1576941 PDF/PS: Fix mismatched save restore when using fill-stroke 2008-02-17 21:33:16 +10:30
Adrian Johnson
3a05b5d2d5 PDF/PS: No need to use save/restore for solid colors 2008-02-17 21:33:04 +10:30
Behdad Esfahbod
c7204adcf3 [cairo-misc.c] Add misc functions to this file
Anything functions that doesn't group with other functions enough to
justify its own file should go here now.
2008-02-17 02:32:24 -05:00
Adrian Johnson
a1360322c4 PS: Remove unused code 2008-02-17 17:21:35 +10:30
Adrian Johnson
2dfe32a0ff Implement PDF fill-stroke 2008-02-17 17:21:35 +10:30
Behdad Esfahbod
1e7fa4b9f5 [cairo-pdf-operators] Pass matrix by reference, not by value 2008-02-16 22:48:06 -05:00
Adrian Johnson
357f2334f0 PDF: Allow word_wrap_stream to split hex strings 2008-02-16 20:37:16 +10:30
Adrian Johnson
204a27aadb PDF: Word wrap _cairo_pdf_operators_show_glyphs output 2008-02-16 20:35:42 +10:30
Behdad Esfahbod
bcb0395288 [docs] Fix typo 2008-02-15 15:56:29 -05:00
Shailendra Jain
536e1963b7 Compile fix for AIX.
Minor correction for a build failure on AIX:
"mozilla/gfx/cairo/cairo/src/cairo-gstate.c", line 45.43: 1506-294 (S)
Syntax error in expression on #if directive.

(Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=415867.)
2008-02-15 13:50:43 +00:00
Chris Wilson
31a67c5f22 [pdf] Minor make check fix.
Add a missing '%' in the documentation.
2008-02-15 13:50:43 +00:00
Chris Wilson
9e9fda0478 [test/bitmap-font] Destroy the font options after use.
Fix the leak of the font options.
2008-02-15 13:50:43 +00:00
Chris Wilson
92970ec836 [test/invalid-matrix] Test detection of infinities.
Feed infinities into the API and check that we correctly return
INVALID_MATRIX.
2008-02-15 13:50:43 +00:00
Chris Wilson
012f68e043 [test/invalid-matrix] Check scale(0,0)
Test that INVALID_MATRIX is returned if the user calls cairo_scale(0,0)
or a variant thereof.
2008-02-15 13:50:43 +00:00
Chris Wilson
eb7488e1e6 [test/invalid-matrix] Promote incorrect status warning to an error.
As the last warning for an incorrect status has been resolved, throw an
error if we regress and no longer report an INVALID_MATRIX under testing.
2008-02-15 13:50:43 +00:00
Chris Wilson
fc732c3aaa [cairo-scaled-font] Create error objects on demand.
In order to correctly report the error back to the user during the
creation of a scaled font, we need to support a nil object per error.
Instead of statically allocating all possible errors, lazily allocate
the nil object the first time we need to report a particular error.

This fixes the misreporting of an INVALID_MATRIX or NULL_POINTER that
are common user errors during the construction of a scaled font.
2008-02-15 13:50:42 +00:00
Chris Wilson
38fcc015a5 [cairo-ft-font] Propagate error detected during determination of scale factors.
Ensure that if an invalid matrix is detected when creating the toy font,
the error is propagated to the caller.
2008-02-15 13:50:42 +00:00
Chris Wilson
ad265cc9f2 [cairo-font-options] Disallow use of NULL font-options.
Partial revert of commit 0086db893c.

This is a follow to the earlier commit that allowed creation of scaled
fonts using a NULL font options (by interpreting the NULL as meaning
use the default options) to reflect the comments made by Behdad
(http://lists.cairographics.org/archives/cairo/2008-January/012714.html).

The intent is that the public font options getter/setter API has similar
defensive behaviour to that of the core objects - i.e. do not overwrite
the nil object and if the object is in error then return the default
value. For the indirect use of a NULL/nil font options (e.g. creation of
scaled fonts), then an error should be returned rather than crashing.
2008-02-15 13:50:42 +00:00