Build-depend on automake, autoconf, libtool and pkg-config. Drop patch for
maintainer mode, and drop build-dep on quilt and corresponding code in
debian/rules. Add new rules autogen and config, where we run autoreconf and
configure, respectively. Update clean rule to remove files generated by
autogen.
The combining functions operate on scratch memory, so they don't need the access
wrappers. There's also no reason not to use the MMX combining functions in the
accessor path.
The tests were including pixman.h, but pixman.h couldn't find pixman-version.h
because it was in $(top_builddir)/pixman rather than $(top_srcdir)/pixman.
These functions allow for callers to use the PIXMAN_FORMAT macro to
construct a format code and to then determine if the resulting code
is supported by pixman for either destination or source surfaces.
The complete new API here makes available compile-tim version checks:
PIXMAN_VERSION
PIXMAN_VERSION_STRING
PIXMAN_VERSION_ENCODE
as well as run-time version checks:
pixman_version()
pixman_version_string()
Add pixman-combine.c to the source list. Make the functions in it static. Call
fbCombineInU through the PIXMAN_COMPOSE_FUNCTIONS table. Declare the functions
tables as extern in pixman-private.h.
The introduction of pixman_have_sse() copied the #ifdef __amd64__
found around pixman_have_mmx() in pixman-mmx.c but didn't include the
equivalents of the macros in pixman-mmx.h. As a result, the AMD64 link
fails because the pixman_have_sse() function doesn't exist.
I also introduced header inclusion guards to pixman-mmx.h and
pixman-sse.h while I was at it.
For nearest filtering, the transformed location must be rounded to the
nearest sample. For locations that precisely in the middle between two
samples, we round down by adding -epsilon to the coordinates.
Before, we would do this on untransformed coordinates. This patch
changes it to happen after transformation. It also clarifies the
difference between sample locations and rounding.
Reported by Robert O'Callahan.
This is so that changes (such as symbol renames) can take place in
pixman-private and ensure that they're included before the prototypes from
pixman.h. pixman-private.h includes pixman.h right at the start.