pixel-buffer: use double instead of float for scale factor

There are strange red and black dots in a 1280x800 splash screen with
Debian Jessie theme. The problem comes from image rescaling and is
caused by:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=799953

on i386. The conversion from double to int in functions
ply_pixel_buffer_resize and ply_pixel_buffer_interpolate happens
through an intermediate float. This sometimes results in a truncated
value being larger than the original value.

This commit changes the code to use an intermediate double to
work around the bug.
This commit is contained in:
Miroslav Urbanek 2015-11-18 10:48:46 -05:00 committed by Ray Strode
parent f80684387a
commit 1ed8ec28df

View file

@ -809,7 +809,7 @@ ply_pixel_buffer_resize (ply_pixel_buffer_t *old_buffer,
int x, y;
double old_x, old_y;
int old_width, old_height;
float scale_x, scale_y;
double scale_x, scale_y;
uint32_t *bytes;
buffer = ply_pixel_buffer_new (width, height);