gdi32: Simplify dibdrv_PutImage a little.
This commit is contained in:
parent
de213f2c66
commit
2e908e067c
|
@ -490,7 +490,7 @@ static DWORD dibdrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAPINF
|
||||||
DWORD ret;
|
DWORD ret;
|
||||||
POINT origin;
|
POINT origin;
|
||||||
dib_info src_dib;
|
dib_info src_dib;
|
||||||
HRGN total_clip, saved_clip = NULL;
|
HRGN saved_clip = NULL;
|
||||||
dibdrv_physdev *pdev = NULL;
|
dibdrv_physdev *pdev = NULL;
|
||||||
const WINEREGION *clip_data;
|
const WINEREGION *clip_data;
|
||||||
int i, rop2;
|
int i, rop2;
|
||||||
|
@ -518,6 +518,7 @@ static DWORD dibdrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAPINF
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
dib = &stand_alone;
|
dib = &stand_alone;
|
||||||
|
rop = SRCCOPY;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -544,22 +545,18 @@ static DWORD dibdrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAPINF
|
||||||
origin.x = src->visrect.left;
|
origin.x = src->visrect.left;
|
||||||
origin.y = src->visrect.top;
|
origin.y = src->visrect.top;
|
||||||
|
|
||||||
if (hbitmap)
|
if (!hbitmap)
|
||||||
{
|
|
||||||
total_clip = clip;
|
|
||||||
rop2 = R2_COPYPEN;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
if (clip) saved_clip = add_extra_clipping_region( pdev, clip );
|
if (clip) saved_clip = add_extra_clipping_region( pdev, clip );
|
||||||
total_clip = pdev->clip;
|
clip = pdev->clip;
|
||||||
rop2 = ((rop >> 16) & 0xf) + 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (total_clip == NULL) dib->funcs->copy_rect( dib, &dst->visrect, &src_dib, &origin, rop2 );
|
rop2 = ((rop >> 16) & 0xf) + 1;
|
||||||
|
|
||||||
|
if (clip == NULL) dib->funcs->copy_rect( dib, &dst->visrect, &src_dib, &origin, rop2 );
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
clip_data = get_wine_region( total_clip );
|
clip_data = get_wine_region( clip );
|
||||||
for (i = 0; i < clip_data->numRects; i++)
|
for (i = 0; i < clip_data->numRects; i++)
|
||||||
{
|
{
|
||||||
RECT clipped_rect;
|
RECT clipped_rect;
|
||||||
|
@ -571,7 +568,7 @@ static DWORD dibdrv_PutImage( PHYSDEV dev, HBITMAP hbitmap, HRGN clip, BITMAPINF
|
||||||
dib->funcs->copy_rect( dib, &clipped_rect, &src_dib, &origin, rop2 );
|
dib->funcs->copy_rect( dib, &clipped_rect, &src_dib, &origin, rop2 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
release_wine_region( total_clip );
|
release_wine_region( clip );
|
||||||
}
|
}
|
||||||
ret = ERROR_SUCCESS;
|
ret = ERROR_SUCCESS;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue