Jacek Caban : win32u: Use NtUserSelectPalette instead of GDISelectPalette.
Alexandre Julliard
julliard at winehq.org
Fri Dec 3 15:18:59 CST 2021
Module: wine
Branch: master
Commit: f359c7f60c08751a11c5d8dd4396881edbb793d6
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f359c7f60c08751a11c5d8dd4396881edbb793d6
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Dec 3 12:56:43 2021 +0100
win32u: Use NtUserSelectPalette instead of GDISelectPalette.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/dc.c | 3 +--
dlls/win32u/dc.c | 4 ++--
dlls/win32u/gdiobj.c | 2 +-
dlls/win32u/ntgdi_private.h | 1 -
dlls/win32u/palette.c | 8 +++++---
dlls/win32u/win32u.spec | 3 +--
dlls/win32u/win32u_private.h | 4 +---
dlls/win32u/wrappers.c | 10 +++++-----
8 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/dlls/gdi32/dc.c b/dlls/gdi32/dc.c
index 705593ac6f7..ea8047a4285 100644
--- a/dlls/gdi32/dc.c
+++ b/dlls/gdi32/dc.c
@@ -2097,8 +2097,7 @@ static UINT WINAPI realize_palette( HDC hdc )
/* Pointers to USER implementation of SelectPalette/RealizePalette */
/* they will be patched by USER on startup */
-extern HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg );
-HPALETTE (WINAPI *pfnSelectPalette)( HDC hdc, HPALETTE hpal, WORD bkgnd ) = GDISelectPalette;
+HPALETTE (WINAPI *pfnSelectPalette)( HDC hdc, HPALETTE hpal, WORD bkgnd ) = NtUserSelectPalette;
UINT (WINAPI *pfnRealizePalette)( HDC hdc ) = realize_palette;
/***********************************************************************
diff --git a/dlls/win32u/dc.c b/dlls/win32u/dc.c
index 1456eb1b887..3aae73779e9 100644
--- a/dlls/win32u/dc.c
+++ b/dlls/win32u/dc.c
@@ -481,7 +481,7 @@ static BOOL reset_dc_state( HDC hdc )
NtGdiSelectFont( hdc, get_stock_object( SYSTEM_FONT ));
NtGdiSelectPen( hdc, get_stock_object( BLACK_PEN ));
NtGdiSetVirtualResolution( hdc, 0, 0, 0, 0 );
- GDISelectPalette( hdc, get_stock_object( DEFAULT_PALETTE ), FALSE );
+ NtUserSelectPalette( hdc, get_stock_object( DEFAULT_PALETTE ), FALSE );
NtGdiSetBoundsRect( hdc, NULL, DCB_DISABLE );
NtGdiAbortPath( hdc );
@@ -689,7 +689,7 @@ BOOL WINAPI NtGdiRestoreDC( HDC hdc, INT level )
NtGdiSelectPen( hdc, dcs->hPen );
set_bk_color( dc, dcs->attr->background_color);
set_text_color( dc, dcs->attr->text_color);
- GDISelectPalette( hdc, dcs->hPalette, FALSE );
+ NtUserSelectPalette( hdc, dcs->hPalette, FALSE );
dc->saved_dc = dcs->saved_dc;
dcs->saved_dc = 0;
diff --git a/dlls/win32u/gdiobj.c b/dlls/win32u/gdiobj.c
index 3dc87509313..796ae460a17 100644
--- a/dlls/win32u/gdiobj.c
+++ b/dlls/win32u/gdiobj.c
@@ -1183,12 +1183,12 @@ static struct unix_funcs unix_funcs =
NtUserIsClipboardFormatAvailable,
NtUserMapVirtualKeyEx,
NtUserScrollDC,
+ NtUserSelectPalette,
NtUserShowCursor,
NtUserToUnicodeEx,
NtUserUnregisterHotKey,
NtUserVkKeyScanEx,
- GDISelectPalette,
GetDCHook,
MirrorRgn,
SetDCHook,
diff --git a/dlls/win32u/ntgdi_private.h b/dlls/win32u/ntgdi_private.h
index 0244882ce3e..534687cb60b 100644
--- a/dlls/win32u/ntgdi_private.h
+++ b/dlls/win32u/ntgdi_private.h
@@ -399,7 +399,6 @@ extern BOOL PATH_RestorePath( DC *dst, DC *src ) DECLSPEC_HIDDEN;
extern POINT *GDI_Bezier( const POINT *Points, INT count, INT *nPtsOut ) DECLSPEC_HIDDEN;
/* palette.c */
-extern HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg) DECLSPEC_HIDDEN;
extern HPALETTE PALETTE_Init(void) DECLSPEC_HIDDEN;
extern UINT get_palette_entries( HPALETTE hpalette, UINT start, UINT count,
PALETTEENTRY *entries ) DECLSPEC_HIDDEN;
diff --git a/dlls/win32u/palette.c b/dlls/win32u/palette.c
index b59a196caff..3aeda89851f 100644
--- a/dlls/win32u/palette.c
+++ b/dlls/win32u/palette.c
@@ -513,15 +513,17 @@ static BOOL PALETTE_DeleteObject( HGDIOBJ handle )
/***********************************************************************
- * GDISelectPalette (Not a Windows API)
+ * NtUserSelectPalette (win32u.@)
*/
-HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg)
+HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE hpal, WORD bkg )
{
HPALETTE ret = 0;
DC *dc;
TRACE("%p %p\n", hdc, hpal );
+ /* FIXME: move primary palette handling from user32 */
+
if (get_gdi_object_type(hpal) != NTGDI_OBJ_PAL)
{
WARN("invalid selected palette %p\n",hpal);
@@ -531,7 +533,7 @@ HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg)
{
ret = dc->hPalette;
dc->hPalette = hpal;
- if (!wBkg) hPrimaryPalette = hpal;
+ if (!bkg) hPrimaryPalette = hpal;
release_dc_ptr( dc );
}
return ret;
diff --git a/dlls/win32u/win32u.spec b/dlls/win32u/win32u.spec
index 8d1a1bbb234..786d2c47b28 100644
--- a/dlls/win32u/win32u.spec
+++ b/dlls/win32u/win32u.spec
@@ -1157,7 +1157,7 @@
@ stub NtUserSBGetParms
@ stdcall NtUserScrollDC(long long long ptr ptr long ptr)
@ stub NtUserScrollWindowEx
-@ stub NtUserSelectPalette
+@ stdcall NtUserSelectPalette(long long long)
@ stub NtUserSendEventMessage
@ stub NtUserSendInput
@ stub NtUserSendInteractiveControlHapticsReport
@@ -1324,7 +1324,6 @@
@ stdcall GetDCHook(long ptr)
@ stdcall SetDCHook(long ptr long)
@ stdcall SetHookFlags(long long)
-@ stdcall GDISelectPalette(long long long)
@ cdecl __wine_make_gdi_object_system(long long)
@ cdecl __wine_set_visible_region(long long ptr ptr ptr)
diff --git a/dlls/win32u/win32u_private.h b/dlls/win32u/win32u_private.h
index d6454b7ad47..648d8cc003a 100644
--- a/dlls/win32u/win32u_private.h
+++ b/dlls/win32u/win32u_private.h
@@ -215,6 +215,7 @@ struct unix_funcs
UINT (WINAPI *pNtUserMapVirtualKeyEx)( UINT code, UINT type, HKL layout );
BOOL (WINAPI *pNtUserScrollDC)( HDC hdc, INT dx, INT dy, const RECT *scroll, const RECT *clip,
HRGN ret_update_rgn, RECT *update_rect );
+ HPALETTE (WINAPI *pNtUserSelectPalette)( HDC hdc, HPALETTE hpal, WORD bkg );
INT (WINAPI *pNtUserShowCursor)( BOOL show );
INT (WINAPI *pNtUserToUnicodeEx)( UINT virt, UINT scan, const BYTE *state,
WCHAR *str, int size, UINT flags, HKL layout );
@@ -222,7 +223,6 @@ struct unix_funcs
WORD (WINAPI *pNtUserVkKeyScanEx)( WCHAR chr, HKL layout );
/* Wine-specific functions */
- HPALETTE (WINAPI *pGDISelectPalette)( HDC hdc, HPALETTE hpal, WORD bkg );
DWORD_PTR (WINAPI *pGetDCHook)( HDC hdc, DCHOOKPROC *proc );
BOOL (WINAPI *pMirrorRgn)( HWND hwnd, HRGN hrgn );
BOOL (WINAPI *pSetDCHook)( HDC hdc, DCHOOKPROC proc, DWORD_PTR data );
@@ -241,8 +241,6 @@ struct unix_funcs
struct window_surface *surface );
};
-HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg );
-
extern RECT get_virtual_screen_rect(void) DECLSPEC_HIDDEN;
extern void wrappers_init( unixlib_handle_t handle ) DECLSPEC_HIDDEN;
diff --git a/dlls/win32u/wrappers.c b/dlls/win32u/wrappers.c
index 1ea45e42c21..5eefd48a635 100644
--- a/dlls/win32u/wrappers.c
+++ b/dlls/win32u/wrappers.c
@@ -681,6 +681,11 @@ BOOL WINAPI NtUserScrollDC( HDC hdc, INT dx, INT dy, const RECT *scroll, const R
return unix_funcs->pNtUserScrollDC( hdc, dx, dy, scroll, clip, ret_update_rgn, update_rect );
}
+HPALETTE WINAPI NtUserSelectPalette( HDC hdc, HPALETTE hpal, WORD bkg )
+{
+ return unix_funcs->pNtUserSelectPalette( hdc, hpal, bkg );
+}
+
INT WINAPI NtUserShowCursor( BOOL show )
{
return unix_funcs->pNtUserShowCursor( show );
@@ -702,11 +707,6 @@ WORD WINAPI NtUserVkKeyScanEx( WCHAR chr, HKL layout )
return unix_funcs->pNtUserVkKeyScanEx( chr, layout );
}
-HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD bkg )
-{
- return unix_funcs->pGDISelectPalette( hdc, hpal, bkg );
-}
-
DWORD_PTR WINAPI GetDCHook( HDC hdc, DCHOOKPROC *proc )
{
return unix_funcs->pGetDCHook( hdc, proc );
More information about the wine-cvs
mailing list