Module: wine Branch: master Commit: c6a290fa9456cae575622a79d0f18b4f3de8fb04 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6a290fa9456cae575622a79d0...
Author: Roderick Colenbrander thunderbird2k@gmail.com Date: Mon Feb 22 00:14:31 2010 +0100
winex11: When a mask picture is active, the source offsets should be relative to mask_pict instead of src_pict.
---
dlls/winex11.drv/xrender.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c index d3600b7..5bbc886 100644 --- a/dlls/winex11.drv/xrender.c +++ b/dlls/winex11.drv/xrender.c @@ -1871,11 +1871,16 @@ static void xrender_blit(Picture src_pict, Picture mask_pict, Picture dst_pict, else { if(mask_pict) + { set_xrender_transformation(mask_pict, 1, 1, 0, 0); + /* Note since the 'source data' is in the mask picture, we have to pass x_src / y_src using mask_x / mask_y */ + pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, 0, 0, x_src, y_src, 0, 0, width, height); + } else + { set_xrender_transformation(src_pict, 1, 1, 0, 0); - - pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, x_src, y_src, 0, 0, 0, 0, width, height); + pXRenderComposite(gdi_display, op, src_pict, mask_pict, dst_pict, x_src, y_src, 0, 0, 0, 0, width, height); + } } }