diff --git a/reactos/win32ss/gdi/ntgdi/dc.h b/reactos/win32ss/gdi/ntgdi/dc.h index c5f7cf54362..6817f6f0ee5 100644 --- a/reactos/win32ss/gdi/ntgdi/dc.h +++ b/reactos/win32ss/gdi/ntgdi/dc.h @@ -173,6 +173,7 @@ UINT FASTCALL IntGdiSetTextAlign(HDC hDC, UINT Mode); VOID FASTCALL DCU_SetDcUndeletable(HDC); BOOL FASTCALL IntSetDefaultRegion(PDC); ULONG TranslateCOLORREF(PDC pdc, COLORREF crColor); +int FASTCALL GreSetStretchBltMode(HDC hdc, int iStretchMode); diff --git a/reactos/win32ss/gdi/ntgdi/dcutil.c b/reactos/win32ss/gdi/ntgdi/dcutil.c index 5fe2f52491a..d7f05af8cad 100644 --- a/reactos/win32ss/gdi/ntgdi/dcutil.c +++ b/reactos/win32ss/gdi/ntgdi/dcutil.c @@ -96,6 +96,29 @@ IntGdiSetTextColor(HDC hDC, return crOldColor; } +int +FASTCALL +GreSetStretchBltMode(HDC hDC, int iStretchMode) +{ + PDC pdc; + PDC_ATTR pdcattr; + INT oSMode = 0; + + pdc = DC_LockDc(hDC); + if (pdc) + { + pdcattr = pdc->pdcattr; + oSMode = pdcattr->lStretchBltMode; + pdcattr->lStretchBltMode = iStretchMode; + + // Wine returns an error here. We set the default. + if ((iStretchMode <= 0) || (iStretchMode > MAXSTRETCHBLTMODE)) iStretchMode = WHITEONBLACK; + + pdcattr->jStretchBltMode = iStretchMode; + } + return oSMode; +} + VOID FASTCALL DCU_SetDcUndeletable(HDC hDC)