summaryrefslogtreecommitdiff
path: root/Build/source/libs/pixman/pixman-src/pixman/pixman-general.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/pixman/pixman-src/pixman/pixman-general.c')
-rw-r--r--Build/source/libs/pixman/pixman-src/pixman/pixman-general.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/Build/source/libs/pixman/pixman-src/pixman/pixman-general.c b/Build/source/libs/pixman/pixman-src/pixman/pixman-general.c
index 6141cb0a30c..7e5a0d09cc8 100644
--- a/Build/source/libs/pixman/pixman-src/pixman/pixman-general.c
+++ b/Build/source/libs/pixman/pixman-src/pixman/pixman-general.c
@@ -141,7 +141,8 @@ general_composite_rect (pixman_implementation_t *imp,
if ((src_image->common.flags & FAST_PATH_NARROW_FORMAT) &&
(!mask_image || mask_image->common.flags & FAST_PATH_NARROW_FORMAT) &&
(dest_image->common.flags & FAST_PATH_NARROW_FORMAT) &&
- !(operator_needs_division (op)))
+ !(operator_needs_division (op)) &&
+ (dest_image->bits.dither == PIXMAN_DITHER_NONE))
{
width_flag = ITER_NARROW;
Bpp = 4;
@@ -164,6 +165,12 @@ general_composite_rect (pixman_implementation_t *imp,
if (!scanline_buffer)
return;
+
+ memset (scanline_buffer, 0, width * Bpp * 3 + 15 * 3);
+ }
+ else
+ {
+ memset (stack_scanline_buffer, 0, sizeof (stack_scanline_buffer));
}
src_buffer = ALIGN (scanline_buffer);