From 2bf1562c28636211898db0ff6350a4f5b833ad1f Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Fri, 6 Aug 2004 18:59:31 +0000 Subject: [PATCH] Actually pass the blend function on to the graphics driver. --- dlls/gdi/bitblt.c | 9 +++++---- dlls/gdi/gdi_private.h | 2 +- dlls/x11drv/x11drv.h | 2 +- dlls/x11drv/xrender.c | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/dlls/gdi/bitblt.c b/dlls/gdi/bitblt.c index 8b114eb6af3..f1c3fa76c38 100644 --- a/dlls/gdi/bitblt.c +++ b/dlls/gdi/bitblt.c @@ -404,20 +404,21 @@ BOOL WINAPI GdiAlphaBlend(HDC hdcDst, int xDst, int yDst, int widthDst, int heig { BOOL ret = FALSE; DC *dcDst, *dcSrc; - DWORD bfn = 0; if ((dcSrc = DC_GetDCUpdate( hdcSrc ))) GDI_ReleaseObj( hdcSrc ); /* FIXME: there is a race condition here */ if ((dcDst = DC_GetDCUpdate( hdcDst ))) { dcSrc = DC_GetDCPtr( hdcSrc ); - TRACE("%p %d,%d %dx%d -> %p %d,%d %dx%d blend=%08lx\n", + TRACE("%p %d,%d %dx%d -> %p %d,%d %dx%d op=%02x flags=%02x srcconstalpha=%02x alphafmt=%02x\n", hdcSrc, xSrc, ySrc, widthSrc, heightSrc, - hdcDst, xDst, yDst, widthDst, heightDst, bfn ); + hdcDst, xDst, yDst, widthDst, heightDst, + blendFunction.BlendOp, blendFunction.BlendFlags, + blendFunction.SourceConstantAlpha, blendFunction.AlphaFormat); if (dcDst->funcs->pAlphaBlend) ret = dcDst->funcs->pAlphaBlend( dcDst->physDev, xDst, yDst, widthDst, heightDst, dcSrc ? dcSrc->physDev : NULL, - xSrc, ySrc, widthSrc, heightSrc, bfn ); + xSrc, ySrc, widthSrc, heightSrc, blendFunction ); if (dcSrc) GDI_ReleaseObj( hdcSrc ); GDI_ReleaseObj( hdcDst ); } diff --git a/dlls/gdi/gdi_private.h b/dlls/gdi/gdi_private.h index 5d9ff3d9714..f5e60aa5d8c 100644 --- a/dlls/gdi/gdi_private.h +++ b/dlls/gdi/gdi_private.h @@ -52,7 +52,7 @@ typedef struct tagDC_FUNCS { INT (*pAbortDoc)(PHYSDEV); BOOL (*pAbortPath)(PHYSDEV); - BOOL (*pAlphaBlend)(PHYSDEV,INT,INT,INT,INT,PHYSDEV,INT,INT,INT,INT,DWORD); + BOOL (*pAlphaBlend)(PHYSDEV,INT,INT,INT,INT,PHYSDEV,INT,INT,INT,INT,BLENDFUNCTION); BOOL (*pAngleArc)(PHYSDEV,INT,INT,DWORD,FLOAT,FLOAT); BOOL (*pArc)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT); BOOL (*pArcTo)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT); diff --git a/dlls/x11drv/x11drv.h b/dlls/x11drv/x11drv.h index 58261f14ad6..9c2c0e71f09 100644 --- a/dlls/x11drv/x11drv.h +++ b/dlls/x11drv/x11drv.h @@ -120,7 +120,7 @@ extern unsigned int X11DRV_server_startticks; extern BOOL X11DRV_AlphaBlend( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst, INT widthDst, INT heightDst, X11DRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc, - INT widthSrc, INT heightSrc, DWORD blendfn ); + INT widthSrc, INT heightSrc, BLENDFUNCTION blendfn ); extern BOOL X11DRV_BitBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst, INT width, INT height, X11DRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc, DWORD rop ); diff --git a/dlls/x11drv/xrender.c b/dlls/x11drv/xrender.c index c3fdc418851..e49c6ee62ec 100644 --- a/dlls/x11drv/xrender.c +++ b/dlls/x11drv/xrender.c @@ -1518,7 +1518,7 @@ done: BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *devDst, INT xDst, INT yDst, INT widthDst, INT heightDst, X11DRV_PDEVICE *devSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, - DWORD blendfn) + BLENDFUNCTION blendfn) { XRenderPictureAttributes pa; XRenderPictFormat *src_format; @@ -1679,7 +1679,7 @@ void X11DRV_XRender_UpdateDrawable(X11DRV_PDEVICE *physDev) BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *devDst, INT xDst, INT yDst, INT widthDst, INT heightDst, X11DRV_PDEVICE *devSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc, - DWORD blendfn) + BLENDFUNCTION blendfn) { FIXME("not supported - XRENDER headers were missing at compile time\n"); return FALSE;