diff --git a/dlls/gdi32/bitblt.c b/dlls/gdi32/bitblt.c index 4c80f1af6110ebce5d2f1da6c44869ba2040f2ba..7298be9e6e0746053b8ec43c3bd09fd39587cd8d 100644 --- a/dlls/gdi32/bitblt.c +++ b/dlls/gdi32/bitblt.c @@ -788,7 +788,7 @@ BOOL WINAPI MaskBlt(HDC hdcDest, INT nXDest, INT nYDest, hbrDst = NtGdiSelectBrush(hdcDest, GetStockObject(NULL_BRUSH)); /* make bitmap */ - hDC1 = CreateCompatibleDC(hdcDest); + hDC1 = NtGdiCreateCompatibleDC( hdcDest ); hBitmap1 = CreateCompatibleBitmap(hdcDest, nWidth, nHeight); hOldBitmap1 = NtGdiSelectBitmap(hDC1, hBitmap1); @@ -799,7 +799,7 @@ BOOL WINAPI MaskBlt(HDC hdcDest, INT nXDest, INT nYDest, NtGdiSelectBrush(hDC1, hbrTmp); /* make bitmap */ - hDC2 = CreateCompatibleDC(hdcDest); + hDC2 = NtGdiCreateCompatibleDC( hdcDest ); hBitmap2 = CreateCompatibleBitmap(hdcDest, nWidth, nHeight); hOldBitmap2 = NtGdiSelectBitmap(hDC2, hBitmap2); @@ -864,7 +864,7 @@ BOOL WINAPI GdiTransparentBlt( HDC hdcDest, int xDest, int yDest, int widthDest, oldStretchMode = GetStretchBltMode(hdcSrc); if(oldStretchMode == BLACKONWHITE || oldStretchMode == WHITEONBLACK) SetStretchBltMode(hdcSrc, COLORONCOLOR); - hdcWork = CreateCompatibleDC(hdcDest); + hdcWork = NtGdiCreateCompatibleDC( hdcDest ); if ((GetObjectType( hdcDest ) != OBJ_MEMDC || GetObjectW( GetCurrentObject( hdcDest, OBJ_BITMAP ), sizeof(dib), &dib ) == sizeof(BITMAP)) && GetDeviceCaps( hdcDest, BITSPIXEL ) == 32) @@ -888,7 +888,7 @@ BOOL WINAPI GdiTransparentBlt( HDC hdcDest, int xDest, int yDest, int widthDest, SetBkColor(hdcWork, crTransparent); /* Create mask */ - hdcMask = CreateCompatibleDC(hdcDest); + hdcMask = NtGdiCreateCompatibleDC( hdcDest ); bmpMask = CreateCompatibleBitmap(hdcMask, widthDest, heightDest); oldMask = NtGdiSelectBitmap(hdcMask, bmpMask); if(!BitBlt(hdcMask, 0, 0, widthDest, heightDest, hdcWork, 0, 0, SRCCOPY)) { diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c index 1d89d48d9c63762481db8a9f01bf01ca10e41945..a51fac027d70fc52d167ad6d0927ca1904f8a536 100644 --- a/dlls/gdi32/dc.c +++ b/dlls/gdi32/dc.c @@ -684,9 +684,9 @@ HDC WINAPI CreateDCW( LPCWSTR driver, LPCWSTR device, LPCWSTR output, /*********************************************************************** - * CreateCompatibleDC (GDI32.@) + * NtGdiCreateCompatibleDC (win32u.@) */ -HDC WINAPI CreateCompatibleDC( HDC hdc ) +HDC WINAPI NtGdiCreateCompatibleDC( HDC hdc ) { DC *dc, *origDC; HDC ret; diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c index 432f33151d9f20579d0c48c4f3ec0079a32226f6..cf822440490bf345ee51f32b8d19e2fb973cfebd 100644 --- a/dlls/gdi32/dib.c +++ b/dlls/gdi32/dib.c @@ -1636,7 +1636,8 @@ NTSTATUS WINAPI D3DKMTCreateDCFromMemory( D3DKMT_CREATEDCFROMMEMORY *desc ) !desc->Pitch || desc->Pitch < get_dib_stride( desc->Width, format->bit_count ) || !desc->Height || desc->Height > UINT_MAX / desc->Pitch) return STATUS_INVALID_PARAMETER; - if (!desc->hDeviceDc || !(dc = CreateCompatibleDC( desc->hDeviceDc ))) return STATUS_INVALID_PARAMETER; + if (!desc->hDeviceDc || !(dc = NtGdiCreateCompatibleDC( desc->hDeviceDc ))) + return STATUS_INVALID_PARAMETER; if (!(bmp = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*bmp) ))) goto error; diff --git a/dlls/gdi32/enhmetafile.c b/dlls/gdi32/enhmetafile.c index 1053a2ea1040a4ebaf2a48b23ebca9fa6764a406..99f692adb98264d39bee3aac9d825402852a9044 100644 --- a/dlls/gdi32/enhmetafile.c +++ b/dlls/gdi32/enhmetafile.c @@ -1916,7 +1916,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( PatBlt(hdc, pBitBlt->xDest, pBitBlt->yDest, pBitBlt->cxDest, pBitBlt->cyDest, pBitBlt->dwRop); } else { /* BitBlt */ - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBRUSH hBrush, hBrushOld; HBITMAP hBmp = 0, hBmpOld = 0; const BITMAPINFO *pbi = (const BITMAPINFO *)((const BYTE *)mr + pBitBlt->offBmiSrc); @@ -1959,7 +1959,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( PatBlt(hdc, pStretchBlt->xDest, pStretchBlt->yDest, pStretchBlt->cxDest, pStretchBlt->cyDest, pStretchBlt->dwRop); } else { /* StretchBlt */ - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBRUSH hBrush, hBrushOld; HBITMAP hBmp = 0, hBmpOld = 0; const BITMAPINFO *pbi = (const BITMAPINFO *)((const BYTE *)mr + pStretchBlt->offBmiSrc); @@ -2002,7 +2002,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( if(pAlphaBlend->offBmiSrc == 0) { FIXME("EMR_ALPHABLEND: offBmiSrc == 0\n"); } else { - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBITMAP hBmp = 0, hBmpOld = 0; const BITMAPINFO *pbi = (const BITMAPINFO *)((const BYTE *)mr + pAlphaBlend->offBmiSrc); void *bits; @@ -2028,7 +2028,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( case EMR_MASKBLT: { const EMRMASKBLT *pMaskBlt = (const EMRMASKBLT *)mr; - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBRUSH hBrush, hBrushOld; HBITMAP hBmp, hBmpOld, hBmpMask; const BITMAPINFO *pbi; @@ -2076,7 +2076,7 @@ BOOL WINAPI PlayEnhMetaFileRecord( case EMR_PLGBLT: { const EMRPLGBLT *pPlgBlt = (const EMRPLGBLT *)mr; - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBRUSH hBrush, hBrushOld; HBITMAP hBmp, hBmpOld, hBmpMask; const BITMAPINFO *pbi; diff --git a/dlls/gdi32/gdi32.spec b/dlls/gdi32/gdi32.spec index aef85c88d7d1edc8dcf5af968506050f64d5a47b..6b1d0952bf2e7146d9fa521f2a730b8990c2b943 100644 --- a/dlls/gdi32/gdi32.spec +++ b/dlls/gdi32/gdi32.spec @@ -44,7 +44,7 @@ @ stdcall CreateColorSpaceA(ptr) @ stdcall CreateColorSpaceW(ptr) @ stdcall CreateCompatibleBitmap(long long long) -@ stdcall CreateCompatibleDC(long) +@ stdcall CreateCompatibleDC(long) NtGdiCreateCompatibleDC @ stdcall CreateDCA(str str str ptr) @ stdcall CreateDCW(wstr wstr wstr ptr) @ stdcall CreateDIBPatternBrush(long long) diff --git a/dlls/gdi32/metafile.c b/dlls/gdi32/metafile.c index 1b31e40bc149a64ebfe5bfcab73e47c593239ac7..b0428960b501580d850a10d0a493437f03c45097 100644 --- a/dlls/gdi32/metafile.c +++ b/dlls/gdi32/metafile.c @@ -841,7 +841,7 @@ BOOL WINAPI PlayMetaFileRecord( HDC hdc, HANDLETABLE *ht, METARECORD *mr, UINT case META_STRETCHBLT: { - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBITMAP hbitmap = CreateBitmap(mr->rdParm[10], /*Width */ mr->rdParm[11], /*Height*/ mr->rdParm[13], /*Planes*/ @@ -859,7 +859,7 @@ BOOL WINAPI PlayMetaFileRecord( HDC hdc, HANDLETABLE *ht, METARECORD *mr, UINT case META_BITBLT: { - HDC hdcSrc = CreateCompatibleDC(hdc); + HDC hdcSrc = NtGdiCreateCompatibleDC( hdc ); HBITMAP hbitmap = CreateBitmap(mr->rdParm[7]/*Width */, mr->rdParm[8]/*Height*/, mr->rdParm[10]/*Planes*/, diff --git a/include/ntgdi.h b/include/ntgdi.h index 22d1f9da187fbeda2df8b23a2dfaea28a155eb11..94b180041c89bb107c5b4c85d96accdfd2954f27 100644 --- a/include/ntgdi.h +++ b/include/ntgdi.h @@ -139,6 +139,7 @@ BOOL WINAPI NtGdiEndPath( HDC hdc ); HANDLE WINAPI NtGdiCreateClientObj( ULONG type ); HFONT WINAPI NtGdiHfontCreate( const ENUMLOGFONTEXDVW *enumex, ULONG unk2, ULONG unk3, ULONG unk4, void *data ); +HDC WINAPI NtGdiCreateCompatibleDC( HDC hdc ); HBRUSH WINAPI NtGdiCreateDIBBrush( const void* data, UINT coloruse ); HRGN WINAPI NtGdiCreateEllipticRgn( INT left, INT top, INT right, INT bottom ); HBRUSH WINAPI NtGdiCreatePatternBrushInternal( HBITMAP hbitmap, BOOL pen );