gdi32: Avoid calling gdi32 functions from ntgdi functions.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2021-09-17 13:44:30 +02:00 committed by Alexandre Julliard
parent 6b1cdd1b5e
commit 57460dbb58
6 changed files with 14 additions and 14 deletions

View File

@ -133,7 +133,7 @@ static inline void create_default_clip_region( DC * dc )
rect.right = NtGdiGetDeviceCaps( dc->hSelf, DESKTOPHORZRES ); rect.right = NtGdiGetDeviceCaps( dc->hSelf, DESKTOPHORZRES );
rect.bottom = NtGdiGetDeviceCaps( dc->hSelf, DESKTOPVERTRES ); rect.bottom = NtGdiGetDeviceCaps( dc->hSelf, DESKTOPVERTRES );
} }
dc->hClipRgn = CreateRectRgnIndirect( &rect ); dc->hClipRgn = NtGdiCreateRectRgn( rect.left, rect.top, rect.right, rect.bottom );
} }
@ -265,7 +265,7 @@ INT WINAPI NtGdiExcludeClipRect( HDC hdc, INT left, INT top, INT right, INT bott
rect = get_clip_rect( dc, left, top, right, bottom ); rect = get_clip_rect( dc, left, top, right, bottom );
if ((rgn = CreateRectRgnIndirect( &rect ))) if ((rgn = NtGdiCreateRectRgn( rect.left, rect.top, rect.right, rect.bottom )))
{ {
if (!dc->hClipRgn) create_default_clip_region( dc ); if (!dc->hClipRgn) create_default_clip_region( dc );
ret = NtGdiCombineRgn( dc->hClipRgn, dc->hClipRgn, rgn, RGN_DIFF ); ret = NtGdiCombineRgn( dc->hClipRgn, dc->hClipRgn, rgn, RGN_DIFF );
@ -293,10 +293,10 @@ INT WINAPI NtGdiIntersectClipRect( HDC hdc, INT left, INT top, INT right, INT bo
rect = get_clip_rect( dc, left, top, right, bottom ); rect = get_clip_rect( dc, left, top, right, bottom );
if (!dc->hClipRgn) if (!dc->hClipRgn)
{ {
if ((dc->hClipRgn = CreateRectRgnIndirect( &rect ))) if ((dc->hClipRgn = NtGdiCreateRectRgn( rect.left, rect.top, rect.right, rect.bottom )))
ret = SIMPLEREGION; ret = SIMPLEREGION;
} }
else if ((rgn = CreateRectRgnIndirect( &rect ))) else if ((rgn = NtGdiCreateRectRgn( rect.left, rect.top, rect.right, rect.bottom )))
{ {
ret = NtGdiCombineRgn( dc->hClipRgn, dc->hClipRgn, rgn, RGN_AND ); ret = NtGdiCombineRgn( dc->hClipRgn, dc->hClipRgn, rgn, RGN_AND );
NtGdiDeleteObjectApp( rgn ); NtGdiDeleteObjectApp( rgn );

View File

@ -936,8 +936,8 @@ UINT set_dib_dc_color_table( HDC hdc, UINT startpos, UINT entries, const RGBQUAD
if (result) /* update colors of selected objects */ if (result) /* update colors of selected objects */
{ {
SetTextColor( hdc, dc->attr->text_color ); NtGdiGetAndSetDCDword( hdc, NtGdiSetTextColor, dc->attr->text_color, NULL );
SetBkColor( hdc, dc->attr->background_color ); NtGdiGetAndSetDCDword( hdc, NtGdiSetBkColor, dc->attr->background_color, NULL );
NtGdiSelectPen( hdc, dc->hPen ); NtGdiSelectPen( hdc, dc->hPen );
NtGdiSelectBrush( hdc, dc->hBrush ); NtGdiSelectBrush( hdc, dc->hBrush );
} }

View File

@ -608,7 +608,7 @@ static INT CDECL nulldrv_GetTextFace( PHYSDEV dev, INT size, LPWSTR name )
LOGFONTW font; LOGFONTW font;
DC *dc = get_nulldrv_dc( dev ); DC *dc = get_nulldrv_dc( dev );
if (GetObjectW( dc->hFont, sizeof(font), &font )) if (NtGdiExtGetObjectW( dc->hFont, sizeof(font), &font ))
{ {
ret = lstrlenW( font.lfFaceName ) + 1; ret = lstrlenW( font.lfFaceName ) + 1;
if (name) if (name)

View File

@ -158,7 +158,7 @@ HPALETTE WINAPI NtGdiCreateHalftonePalette( HDC hdc )
pal->palPalEntry[i].peBlue = entries[i].rgbBlue; pal->palPalEntry[i].peBlue = entries[i].rgbBlue;
pal->palPalEntry[i].peFlags = 0; pal->palPalEntry[i].peFlags = 0;
} }
return CreatePalette( pal ); return NtGdiCreatePaletteInternal( pal, pal->palNumEntries );
} }

View File

@ -348,7 +348,7 @@ static HRGN path_to_region( const struct gdi_path *path, int mode )
if (i > pos + 1) counts[polygons++] = i - pos; if (i > pos + 1) counts[polygons++] = i - pos;
assert( polygons <= path->count / 2 ); assert( polygons <= path->count / 2 );
hrgn = CreatePolyPolygonRgn( path->points, counts, polygons, mode ); hrgn = create_polypolygon_region( path->points, counts, polygons, mode, NULL );
HeapFree( GetProcessHeap(), 0, counts ); HeapFree( GetProcessHeap(), 0, counts );
return hrgn; return hrgn;
} }
@ -1535,7 +1535,7 @@ static BOOL CDECL pathdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, con
DWORD dwSize; DWORD dwSize;
void *outline; void *outline;
dwSize = GetGlyphOutlineW(dev->hdc, str[idx], ggo_flags, &gm, 0, NULL, &identity); dwSize = NtGdiGetGlyphOutline( dev->hdc, str[idx], ggo_flags, &gm, 0, NULL, &identity, FALSE );
if (dwSize == GDI_ERROR) continue; if (dwSize == GDI_ERROR) continue;
/* add outline only if char is printable */ /* add outline only if char is printable */
@ -1544,7 +1544,7 @@ static BOOL CDECL pathdrv_ExtTextOut( PHYSDEV dev, INT x, INT y, UINT flags, con
outline = HeapAlloc(GetProcessHeap(), 0, dwSize); outline = HeapAlloc(GetProcessHeap(), 0, dwSize);
if (!outline) return FALSE; if (!outline) return FALSE;
GetGlyphOutlineW(dev->hdc, str[idx], ggo_flags, &gm, dwSize, outline, &identity); NtGdiGetGlyphOutline( dev->hdc, str[idx], ggo_flags, &gm, dwSize, outline, &identity, FALSE );
PATH_add_outline(physdev, x + offset.x, y + offset.y, outline, dwSize); PATH_add_outline(physdev, x + offset.x, y + offset.y, outline, dwSize);
HeapFree(GetProcessHeap(), 0, outline); HeapFree(GetProcessHeap(), 0, outline);
@ -1618,14 +1618,14 @@ static struct gdi_path *PATH_WidenPath(DC *dc)
BYTE *type; BYTE *type;
DWORD obj_type, joint, endcap, penType; DWORD obj_type, joint, endcap, penType;
size = GetObjectW( dc->hPen, 0, NULL ); size = NtGdiExtGetObjectW( dc->hPen, 0, NULL );
if (!size) { if (!size) {
SetLastError(ERROR_CAN_NOT_COMPLETE); SetLastError(ERROR_CAN_NOT_COMPLETE);
return NULL; return NULL;
} }
elp = HeapAlloc( GetProcessHeap(), 0, size ); elp = HeapAlloc( GetProcessHeap(), 0, size );
GetObjectW( dc->hPen, size, elp ); NtGdiExtGetObjectW( dc->hPen, size, elp );
obj_type = get_gdi_object_type(dc->hPen); obj_type = get_gdi_object_type(dc->hPen);
switch (obj_type) switch (obj_type)

View File

@ -927,7 +927,7 @@ HRGN WINAPI NtGdiExtCreateRegion( const XFORM *xform, DWORD count, const RGNDATA
pt[3].y = pCurRect->bottom; pt[3].y = pCurRect->bottom;
translate( pt, 4, xform ); translate( pt, 4, xform );
poly_hrgn = CreatePolyPolygonRgn( pt, &count, 1, WINDING ); poly_hrgn = create_polypolygon_region( pt, &count, 1, WINDING, NULL );
NtGdiCombineRgn( hrgn, hrgn, poly_hrgn, RGN_OR ); NtGdiCombineRgn( hrgn, hrgn, poly_hrgn, RGN_OR );
NtGdiDeleteObjectApp( poly_hrgn ); NtGdiDeleteObjectApp( poly_hrgn );
} }