/* Contracts a floating point image to 32bpp and then stores it using a regular 32-bit store proc. Despite the type, this function expects an argb_t buffer.  */
static void store_scanline_generic_float(bits_image_t *image, int x, int y, int width, const uint32_t *values)
/* Contracts a floating point image to 32bpp and then stores it using a regular 32-bit store proc. Despite the type, this function expects an argb_t buffer.  */
static void store_scanline_generic_float(bits_image_t *image, int x, int y, int width, const uint32_t *values)
{
    uint32_t *argb8_pixels;
    assert (image->common.type == BITS);
    argb8_pixels = pixman_malloc_ab (width, sizeof(uint32_t));
    if (!argb8_pixels)
	return;
    pixman_contract_from_float (argb8_pixels, (argb_t *)values, width);
    image->store_scanline_32 (image, x, y, width, argb8_pixels);
    free (argb8_pixels);
}