Index: src/ply-frame-buffer.c |
diff --git a/src/ply-frame-buffer.c b/src/ply-frame-buffer.c |
index 4baa1f2d0217677bf05c7bb9891ad493586d9ca9..5c5e45bce7c34ccac00dea85994575d4aff701d2 100755 |
--- a/src/ply-frame-buffer.c |
+++ b/src/ply-frame-buffer.c |
@@ -550,20 +550,20 @@ ply_frame_buffer_fill (ply_frame_buffer_t *buffer, |
{ |
/* image is wider than buffer */ |
dst = &buffer->map_address[0]; |
- src = (char *) (data + hdiff / 2); |
+ src = (char *) (data + hdiff / 2 - x); |
} else { |
- dst = &buffer->map_address[(-hdiff / 2) * buffer->bytes_per_pixel]; |
+ dst = &buffer->map_address[(-hdiff / 2 + x) * buffer->bytes_per_pixel]; |
src = (char *) data; |
} |
if (vdiff >= 0) |
{ |
/* image is taller than buffer */ |
- src += (vdiff / 2) * area->width * sizeof(*data); |
+ src += (vdiff / 2 - y) * area->width * sizeof(*data); |
} |
else |
{ |
- dst += (-vdiff / 2) * buffer->row_stride * buffer->bytes_per_pixel; |
+ dst += (-vdiff / 2 + y) * buffer->row_stride * buffer->bytes_per_pixel; |
} |
if (buffer->bytes_per_pixel != sizeof(*data)) |