Commit a7b5f5ac authored by Frank Richter's avatar Frank Richter Committed by Alexandre Julliard

Make AlphaBlend() respect the destination clipping region.

parent 8d862129
......@@ -1432,6 +1432,7 @@ BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *devDst, INT xDst, INT yDst, INT widthDst,
int y, y2;
POINT pts[2];
BOOL top_down = FALSE;
RGNDATA *rgndata;
if(!X11DRV_XRender_Installed) {
FIXME("Unable to AlphaBlend without Xrender\n");
......@@ -1531,6 +1532,15 @@ BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *devDst, INT xDst, INT yDst, INT widthDst,
CPSubwindowMode, &pa);
TRACE("src_pict %08lx\n", src_pict);
if ((rgndata = X11DRV_GetRegionData( devDst->region, 0 )))
{
pXRenderSetPictureClipRectangles( gdi_display, dst_pict,
devDst->org.x, devDst->org.y,
(XRectangle *)rgndata->Buffer,
rgndata->rdh.nCount );
HeapFree( GetProcessHeap(), 0, rgndata );
}
#ifdef HAVE_XRENDERSETPICTURETRANSFORM
if(widthDst != widthSrc || heightDst != heightSrc) {
double xscale = widthSrc/(double)widthDst;
......
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