forked from Mirrors/wine-wine
Actually pass the blend function on to the graphics driver.
parent
42c8b413da
commit
2bf1562c28
|
@ -404,20 +404,21 @@ BOOL WINAPI GdiAlphaBlend(HDC hdcDst, int xDst, int yDst, int widthDst, int heig
|
||||||
{
|
{
|
||||||
BOOL ret = FALSE;
|
BOOL ret = FALSE;
|
||||||
DC *dcDst, *dcSrc;
|
DC *dcDst, *dcSrc;
|
||||||
DWORD bfn = 0;
|
|
||||||
|
|
||||||
if ((dcSrc = DC_GetDCUpdate( hdcSrc ))) GDI_ReleaseObj( hdcSrc );
|
if ((dcSrc = DC_GetDCUpdate( hdcSrc ))) GDI_ReleaseObj( hdcSrc );
|
||||||
/* FIXME: there is a race condition here */
|
/* FIXME: there is a race condition here */
|
||||||
if ((dcDst = DC_GetDCUpdate( hdcDst )))
|
if ((dcDst = DC_GetDCUpdate( hdcDst )))
|
||||||
{
|
{
|
||||||
dcSrc = DC_GetDCPtr( hdcSrc );
|
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,
|
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)
|
if (dcDst->funcs->pAlphaBlend)
|
||||||
ret = dcDst->funcs->pAlphaBlend( dcDst->physDev, xDst, yDst, widthDst, heightDst,
|
ret = dcDst->funcs->pAlphaBlend( dcDst->physDev, xDst, yDst, widthDst, heightDst,
|
||||||
dcSrc ? dcSrc->physDev : NULL,
|
dcSrc ? dcSrc->physDev : NULL,
|
||||||
xSrc, ySrc, widthSrc, heightSrc, bfn );
|
xSrc, ySrc, widthSrc, heightSrc, blendFunction );
|
||||||
if (dcSrc) GDI_ReleaseObj( hdcSrc );
|
if (dcSrc) GDI_ReleaseObj( hdcSrc );
|
||||||
GDI_ReleaseObj( hdcDst );
|
GDI_ReleaseObj( hdcDst );
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ typedef struct tagDC_FUNCS
|
||||||
{
|
{
|
||||||
INT (*pAbortDoc)(PHYSDEV);
|
INT (*pAbortDoc)(PHYSDEV);
|
||||||
BOOL (*pAbortPath)(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 (*pAngleArc)(PHYSDEV,INT,INT,DWORD,FLOAT,FLOAT);
|
||||||
BOOL (*pArc)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT);
|
BOOL (*pArc)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||||
BOOL (*pArcTo)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT);
|
BOOL (*pArcTo)(PHYSDEV,INT,INT,INT,INT,INT,INT,INT,INT);
|
||||||
|
|
|
@ -120,7 +120,7 @@ extern unsigned int X11DRV_server_startticks;
|
||||||
extern BOOL X11DRV_AlphaBlend( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
|
extern BOOL X11DRV_AlphaBlend( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
|
||||||
INT widthDst, INT heightDst,
|
INT widthDst, INT heightDst,
|
||||||
X11DRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc,
|
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,
|
extern BOOL X11DRV_BitBlt( X11DRV_PDEVICE *physDevDst, INT xDst, INT yDst,
|
||||||
INT width, INT height, X11DRV_PDEVICE *physDevSrc,
|
INT width, INT height, X11DRV_PDEVICE *physDevSrc,
|
||||||
INT xSrc, INT ySrc, DWORD rop );
|
INT xSrc, INT ySrc, DWORD rop );
|
||||||
|
|
|
@ -1518,7 +1518,7 @@ done:
|
||||||
|
|
||||||
BOOL X11DRV_AlphaBlend(X11DRV_PDEVICE *devDst, INT xDst, INT yDst, INT widthDst, INT heightDst,
|
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,
|
X11DRV_PDEVICE *devSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc,
|
||||||
DWORD blendfn)
|
BLENDFUNCTION blendfn)
|
||||||
{
|
{
|
||||||
XRenderPictureAttributes pa;
|
XRenderPictureAttributes pa;
|
||||||
XRenderPictFormat *src_format;
|
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,
|
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,
|
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");
|
FIXME("not supported - XRENDER headers were missing at compile time\n");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
Loading…
Reference in New Issue