Mark Harmstone : uxtheme: Fix colour errors in UXTHEME_StretchBlt.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Apr 9 11:07:41 CDT 2015
Module: wine
Branch: master
Commit: c6b4b4b93e6c6bccda06aacd557537a51bec836e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6b4b4b93e6c6bccda06aacd557537a51bec836e
Author: Mark Harmstone <hellas at burntcomma.com>
Date: Wed Apr 8 07:43:36 2015 +0100
uxtheme: Fix colour errors in UXTHEME_StretchBlt.
---
dlls/uxtheme/draw.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c
index 19df3c8..8a9397d 100644
--- a/dlls/uxtheme/draw.c
+++ b/dlls/uxtheme/draw.c
@@ -293,22 +293,33 @@ static inline BOOL UXTHEME_StretchBlt(HDC hdcDst, int nXOriginDst, int nYOriginD
255, /* SourceConstantAlpha */
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) {
/* 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),
transcolor);
- }
- if ((transparent == ALPHABLEND_NONE) ||
+ } else if ((transparent == ALPHABLEND_NONE) ||
!AlphaBlend(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
blendFunc))
{
- return StretchBlt(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
+ ret = StretchBlt(hdcDst, nXOriginDst, nYOriginDst, nWidthDst, nHeightDst,
hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc,
SRCCOPY);
}
- return TRUE;
+
+ SetBrushOrgEx(hdcDst, old_brush_org.x, old_brush_org.y, NULL);
+ SetStretchBltMode(hdcDst, old_stretch_mode);
+
+ return ret;
}
/***********************************************************************
More information about the wine-cvs
mailing list