Commit 7bcd8fa2 authored by Alexandre Julliard's avatar Alexandre Julliard

gdi32: Copy bits in the correct order for the overlap case in the individual copy_rect functions.

parent 5fd305c3
......@@ -478,7 +478,7 @@ static DWORD copy_rect( dib_info *dst, const RECT *dst_rect, const dib_info *src
origin.y = src_rect->top;
overlap = get_overlap( dst, dst_rect, src, src_rect );
if (clip == NULL) dst->funcs->copy_rect( dst, dst_rect, src, &origin, rop2 );
if (clip == NULL) dst->funcs->copy_rect( dst, dst_rect, src, &origin, rop2, overlap );
else
{
clip_data = get_wine_region( clip );
......@@ -492,7 +492,7 @@ static DWORD copy_rect( dib_info *dst, const RECT *dst_rect, const dib_info *src
{
origin.x = src_rect->left + clipped_rect.left - dst_rect->left;
origin.y = src_rect->top + clipped_rect.top - dst_rect->top;
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2 );
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2, overlap );
}
}
}
......@@ -509,7 +509,7 @@ static DWORD copy_rect( dib_info *dst, const RECT *dst_rect, const dib_info *src
{
origin.x = src_rect->left + clipped_rect.left - dst_rect->left;
origin.y = src_rect->top + clipped_rect.top - dst_rect->top;
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2 );
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2, overlap );
}
}
}
......@@ -528,7 +528,7 @@ static DWORD copy_rect( dib_info *dst, const RECT *dst_rect, const dib_info *src
{
origin.x = src_rect->left + clipped_rect.left - dst_rect->left;
origin.y = src_rect->top + clipped_rect.top - dst_rect->top;
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2 );
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2, overlap );
}
}
}
......@@ -541,7 +541,7 @@ static DWORD copy_rect( dib_info *dst, const RECT *dst_rect, const dib_info *src
{
origin.x = src_rect->left + clipped_rect.left - dst_rect->left;
origin.y = src_rect->top + clipped_rect.top - dst_rect->top;
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2 );
dst->funcs->copy_rect( dst, &clipped_rect, src, &origin, rop2, overlap );
}
}
}
......
......@@ -126,7 +126,7 @@ typedef struct primitive_funcs
{
void (* solid_rects)(const dib_info *dib, int num, const RECT *rc, DWORD and, DWORD xor);
void (* pattern_rects)(const dib_info *dib, int num, const RECT *rc, const POINT *orign, const dib_info *brush, void *and_bits, void *xor_bits);
void (* copy_rect)(const dib_info *dst, const RECT *rc, const dib_info *src, const POINT *origin, int rop2);
void (* copy_rect)(const dib_info *dst, const RECT *rc, const dib_info *src, const POINT *origin, int rop2, int overlap);
DWORD (* colorref_to_pixel)(const dib_info *dib, COLORREF color);
BOOL (* convert_to)(dib_info *dst, const dib_info *src, const RECT *src_rect);
BOOL (* create_rop_masks)(const dib_info *dib, const dib_info *hatch, const rop_mask *fg, const rop_mask *bg, rop_mask_bits *bits);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment