diff options
author | Miroslav Urbanek <mu@miroslavurbanek.com> | 2015-11-18 10:48:46 -0500 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-11-18 10:48:46 -0500 |
commit | 1ed8ec28df55f55f38acad67b9fdf6cd76b86b3f (patch) | |
tree | f8f707d270f374429ed56927a8ecfbff0ef8d250 | |
parent | f80684387a0371d69df155d9d2bde058371c5aa2 (diff) |
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.
-rw-r--r-- | src/libply-splash-core/ply-pixel-buffer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c index 120a2eb0..61ee91c4 100644 --- a/src/libply-splash-core/ply-pixel-buffer.c +++ b/src/libply-splash-core/ply-pixel-buffer.c @@ -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); |