Implement floating point gradient computation, v2.
authorBasile Clement <basile-pixman@clement.pm>
Mon, 3 Dec 2018 14:55:28 +0000 (15:55 +0100)
committerMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
Mon, 11 Feb 2019 11:48:21 +0000 (12:48 +0100)
commita32fc4faf9defc6c18cf1cca7075ef3866fd5de6
treec94df9dc38100763c350fdceb7c97fc7428bb1c3
parentb40d5495ece2b2b5cff60e386c2f69db4ae03916
Implement floating point gradient computation, v2.

This patch modifies the gradient walker to be able to generate floating
point values directly in addition to a8r8g8b8 32 bit values.  This is
then used by the various gradient implementations to render in floating
point when asked to do so, instead of rendering to a8r8g8b8 and then
expanding to floating point as they were doing previously.

Changes since v1 (mlankhorst):
- Implement pixman_gradient_walker_pixel_32 without calling
  pixman_gradient_walker_pixel_float, to prevent performance degradation.
  Suggested by Adam Jackson.
- Fix whitespace errors.
- Remove unnecessary function prototypes in pixman-private.h

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
[mlankhorst: Add comment about pixman_contract_from_float,
             based on Basille's suggestion]
Acked-by: Basile Clement <basile-pixman@clement.pm>
pixman/pixman-conical-gradient.c
pixman/pixman-gradient-walker.c
pixman/pixman-linear-gradient.c
pixman/pixman-private.h
pixman/pixman-radial-gradient.c