Avoid the overhead of sorting the rectangle in
_cairo_traps_tessellate_convex_quad() by constructing the trap directly
from the line segment. This also has secondary effects in only passing
the non-degenerate trap to _cairo_traps_add_trap().
For rectilinear Hilbert curves this makes the rectilinear stoker over 4x
faster.
The rectilinear stroke finalized the cairo_traps_t passed to it - which
was then subsequently used without re-initialized. So instead of
finalizing the structure, just remove any traps that we may have added
(leaving the limits and memory intact).
Carl had this confusing problem today making the snapshot, which was
"make release-publish" erring. This commit reworks the release-publish
machinery to enforce serialization of some of the tasks such that it
works with make -j. Don't expect any speedup though as "make distcheck"
is inherently sequential.
The cairo_headers variable in Makefile.win32 was unused and
from before the new build system was put in place. One can
use enabled_cairo_headers if need be.
By introducing $(top_srcdir)/cairo-version.h I tried to make it
unnecessary to rebuild the entire library when the version changes.
That comes handy around releases and when bisecting.
However this was not working as the version info was also ending
up in config.h and hence forcing a full rebuild upon change.
I now undefine the PACKAGE_VERSION* macros that autoconf defines,
so config.h does not change when cairo-version.h changes.
Now that our build system can compute a list of all cairo files,
we prefer to use that in the tests instead of running "find".
However, we were not switching to $(srcdir) so the test was not
finding source files in out-of-tree builds. Noticed that from
the grep error in distcheck.
We used to do a full doc build to just to run the coverage test. That's
way too slow to expect people to run regularly. Instead now we just do the
source code scanning part of the doc build system that is just enough to
know if all symbols are documented.
A full doc build can be done as always by invoking "make doc", and indeed
will be called as part of "make dist" or "make distcheck".
Copy/paste error meant we were not checking cairo-undeclared.txt there.
Indeed the test was passing even though Carl forgot to remove lcd-fitlering
API from docs. The test fails now.
Note 1.7 API changes: Remove lcd_filter, cairo_has_show_glyphs, and
add cairo_text_cluster_flags_t. Also mention a few major bug fixes,
Behdad's build-system rework, and Chris's customary robustness
improvements.
During the cairo summit it was decided that this API is to freetype-
specific to be in the general cairo interface for now. This will
likely come back again soon as a cairo_ft-specific interface.
Chris rightfully complained that having a boolean function argument is
new in cairo_show_text_glyphs, and indeed avoiding them has been one
of the API design criteria for cairo. Trying to come up with alternatives,
Owen suggested using a flag type which nicely solves the problem AND
future-proofs such a complex API.
Please welcome _flags_t APIs to cairo.h
--coverage is a synonym for "--fprofile-arcs --ftest-coverage" during
compilation *and* "--lgcov" during linking. One might think this would
be a perfect workaround for the broken debian libtool which stopped the
linker seeing -lgcov - but they strip CFLAGS as well. Oh well.
If the native windowing system is disable (e.g. --disable-xlib) then the
test suite fails to build since the vector converters typically depend
upon gdk-pixbuf-2.0, which in turn depends upon a native gdk which
requires cairo to be built with support for the native windowing system. A
mess that should be resolved by separating rsvg and poppler into core and
higher-level libraries, but which we can workaround by simply ignoring
errors from undefined functions at link time.
The adjustments done to the pixman matrix also need to be done for
XTransform. Since an XTransform is just a pixman_transform_t with
another name, we can reuse the conversion function.
where either pushes 'dict true' or 'false' so the true procedure needs to
consume the dictionary as well - for our purposes we just pop it off the
operand stack.
This reverts commit a341cb5a98.
The change introduced in that commit should not be needed and libtool
should just do the right thing. I cannot reproduce the problem
Chris was having no matter how hard I tried.
With --enable-gcov, make check aborts with gcov errors on check-link - it
appears that -lgcov is magic and requires explicit invovation on the
command-line.
The combination of the initial cairo_paint() and the translucent text
colors were causing image fallbacks that prevented the PS type 3 font
embedding from being tested.