uxtheme: Fix colour errors in UXTHEME_StretchBlt.
This commit is contained in:
parent
b0a9fb6b0d
commit
c6b4b4b93e
|
@ -293,22 +293,33 @@ static inline BOOL UXTHEME_StretchBlt(HDC hdcDst, int nXOriginDst, int nYOriginD
|
||||||
255, /* SourceConstantAlpha */
|
255, /* SourceConstantAlpha */
|
||||||
AC_SRC_ALPHA /* AlphaFormat */
|
AC_SRC_ALPHA /* AlphaFormat */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
BOOL ret = TRUE;
|
||||||
|
int old_stretch_mode;
|
||||||
|
POINT old_brush_org;
|
||||||
|
|
||||||
|
old_stretch_mode = SetStretchBltMode(hdcDst, HALFTONE);
|
||||||
|
SetBrushOrgEx(hdcDst, nXOriginDst, nYOriginDst, &old_brush_org);
|
||||||
|
|
||||||
if (transparent == ALPHABLEND_BINARY) {
|
if (transparent == ALPHABLEND_BINARY) {
|
||||||
/* Ensure we don't pass any negative values to TransparentBlt */
|
/* Ensure we don't pass any negative values to TransparentBlt */
|
||||||
return TransparentBlt(hdcDst, nXOriginDst, nYOriginDst, abs(nWidthDst), abs(nHeightDst),
|
ret = TransparentBlt(hdcDst, nXOriginDst, nYOriginDst, abs(nWidthDst), abs(nHeightDst),
|
||||||
hdcSrc, nXOriginSrc, nYOriginSrc, abs(nWidthSrc), abs(nHeightSrc),
|
hdcSrc, nXOriginSrc, nYOriginSrc, abs(nWidthSrc), abs(nHeightSrc),
|
||||||
transcolor);
|
transcolor);
|
||||||
}
|
} else if ((transparent == ALPHABLEND_NONE) ||
|
||||||
if ((transparent == ALPHABLEND_NONE) ||
|
|
||||||
!AlphaBlend(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
|
!AlphaBlend(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
|
||||||
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
|
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
|
||||||
blendFunc))
|
blendFunc))
|
||||||
{
|
{
|
||||||
return StretchBlt(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
|
ret = StretchBlt(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
|
||||||
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
|
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
|
||||||
SRCCOPY);
|
SRCCOPY);
|
||||||
}
|
}
|
||||||
return TRUE;
|
|
||||||
|
SetBrushOrgEx(hdcDst, old_brush_org.x, old_brush_org.y, NULL);
|
||||||
|
SetStretchBltMode(hdcDst, old_stretch_mode);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
|
Loading…
Reference in New Issue