pixman: Use maximum precision for pixman-bits-image, v2.
authorMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Thu, 6 Dec 2018 14:42:26 +0000 (15:42 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Mon, 11 Feb 2019 11:48:57 +0000 (12:48 +0100)
commit6240ad15c67ff33f4a05831711cae23be7d51733
treed74b89c039e336db477b3d9ff633b1d52eefc350
parenta32fc4faf9defc6c18cf1cca7075ef3866fd5de6
pixman: Use maximum precision for pixman-bits-image, v2.

pixman-bits-image's wide helpers first obtains the 8-bits image,
then converts it to float. This destroys all the precision that
the wide path was offering.

Fix this by making get_pixel() take a pointer instead of returning
a value. Floating point will fill in a argb_t, while the 8-bits path
will fill a 32-bits ARGB value. This also requires writing a floating
point bilinear interpolator. With this change pixman can use the full
floating point precision internally in all paths.

Changes since v1:
- Make accum and reduce an argument to convolution functions,
  to remove duplication.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-by: Basile Clement <basile-pixman@clement.pm>
pixman/pixman-bits-image.c
pixman/pixman-inlines.h