user32: Use user_driver_funcs to expose user driver function from drivers.
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:
parent
d1290b6ec7
commit
fd675485be
|
@ -59,9 +59,17 @@ static BOOL load_desktop_driver( HWND hwnd, HMODULE *module )
|
||||||
size = sizeof(path);
|
size = sizeof(path);
|
||||||
if (!RegQueryValueExW( hkey, L"GraphicsDriver", NULL, NULL, (BYTE *)path, &size ))
|
if (!RegQueryValueExW( hkey, L"GraphicsDriver", NULL, NULL, (BYTE *)path, &size ))
|
||||||
{
|
{
|
||||||
if ((ret = !wcscmp( path, L"null" ))) *module = NULL;
|
if (wcscmp( path, L"null" ))
|
||||||
else ret = (*module = LoadLibraryW( path )) != NULL;
|
{
|
||||||
if (!ret) ERR( "failed to load %s\n", debugstr_w(path) );
|
ret = (*module = LoadLibraryW( path )) != NULL;
|
||||||
|
if (!ret) ERR( "failed to load %s\n", debugstr_w(path) );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
__wine_set_user_driver( &null_driver, WINE_GDI_DRIVER_VERSION );
|
||||||
|
*module = NULL;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
TRACE( "%s %p\n", debugstr_w(path), *module );
|
TRACE( "%s %p\n", debugstr_w(path), *module );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -77,87 +85,25 @@ static BOOL load_desktop_driver( HWND hwnd, HMODULE *module )
|
||||||
/* load the graphics driver */
|
/* load the graphics driver */
|
||||||
static const struct user_driver_funcs *load_driver(void)
|
static const struct user_driver_funcs *load_driver(void)
|
||||||
{
|
{
|
||||||
void *ptr;
|
struct user_driver_funcs driver;
|
||||||
HMODULE graphics_driver = NULL;
|
USEROBJECTFLAGS flags;
|
||||||
struct user_driver_funcs *driver, *prev;
|
HWINSTA winstation;
|
||||||
|
HMODULE module;
|
||||||
|
|
||||||
driver = HeapAlloc( GetProcessHeap(), 0, sizeof(*driver) );
|
if (!load_desktop_driver( GetDesktopWindow(), &module ) || USER_Driver == &lazy_load_driver)
|
||||||
*driver = null_driver;
|
|
||||||
|
|
||||||
if (!load_desktop_driver( GetDesktopWindow(), &graphics_driver ))
|
|
||||||
{
|
{
|
||||||
USEROBJECTFLAGS flags;
|
memset( &driver, 0, sizeof(driver) );
|
||||||
HWINSTA winstation;
|
|
||||||
|
|
||||||
winstation = NtUserGetProcessWindowStation();
|
winstation = NtUserGetProcessWindowStation();
|
||||||
if (!GetUserObjectInformationA(winstation, UOI_FLAGS, &flags, sizeof(flags), NULL)
|
if (!NtUserGetObjectInformation( winstation, UOI_FLAGS, &flags, sizeof(flags), NULL )
|
||||||
|| (flags.dwFlags & WSF_VISIBLE))
|
|| (flags.dwFlags & WSF_VISIBLE))
|
||||||
driver->pCreateWindow = nodrv_CreateWindow;
|
driver.pCreateWindow = nodrv_CreateWindow;
|
||||||
}
|
|
||||||
else if (graphics_driver)
|
|
||||||
{
|
|
||||||
#define GET_USER_FUNC(name) \
|
|
||||||
do { if ((ptr = GetProcAddress( graphics_driver, #name ))) driver->p##name = ptr; } while(0)
|
|
||||||
|
|
||||||
GET_USER_FUNC(ActivateKeyboardLayout);
|
__wine_set_user_driver( &driver, WINE_GDI_DRIVER_VERSION );
|
||||||
GET_USER_FUNC(Beep);
|
|
||||||
GET_USER_FUNC(GetKeyNameText);
|
|
||||||
GET_USER_FUNC(GetKeyboardLayoutList);
|
|
||||||
GET_USER_FUNC(MapVirtualKeyEx);
|
|
||||||
GET_USER_FUNC(RegisterHotKey);
|
|
||||||
GET_USER_FUNC(ToUnicodeEx);
|
|
||||||
GET_USER_FUNC(UnregisterHotKey);
|
|
||||||
GET_USER_FUNC(VkKeyScanEx);
|
|
||||||
GET_USER_FUNC(DestroyCursorIcon);
|
|
||||||
GET_USER_FUNC(SetCursor);
|
|
||||||
GET_USER_FUNC(GetCursorPos);
|
|
||||||
GET_USER_FUNC(SetCursorPos);
|
|
||||||
GET_USER_FUNC(ClipCursor);
|
|
||||||
GET_USER_FUNC(UpdateClipboard);
|
|
||||||
GET_USER_FUNC(ChangeDisplaySettingsEx);
|
|
||||||
GET_USER_FUNC(EnumDisplayMonitors);
|
|
||||||
GET_USER_FUNC(EnumDisplaySettingsEx);
|
|
||||||
GET_USER_FUNC(GetMonitorInfo);
|
|
||||||
GET_USER_FUNC(CreateDesktopWindow);
|
|
||||||
GET_USER_FUNC(CreateWindow);
|
|
||||||
GET_USER_FUNC(DestroyWindow);
|
|
||||||
GET_USER_FUNC(FlashWindowEx);
|
|
||||||
GET_USER_FUNC(GetDC);
|
|
||||||
GET_USER_FUNC(MsgWaitForMultipleObjectsEx);
|
|
||||||
GET_USER_FUNC(ReleaseDC);
|
|
||||||
GET_USER_FUNC(ScrollDC);
|
|
||||||
GET_USER_FUNC(SetCapture);
|
|
||||||
GET_USER_FUNC(SetFocus);
|
|
||||||
GET_USER_FUNC(SetLayeredWindowAttributes);
|
|
||||||
GET_USER_FUNC(SetParent);
|
|
||||||
GET_USER_FUNC(SetWindowRgn);
|
|
||||||
GET_USER_FUNC(SetWindowIcon);
|
|
||||||
GET_USER_FUNC(SetWindowStyle);
|
|
||||||
GET_USER_FUNC(SetWindowText);
|
|
||||||
GET_USER_FUNC(ShowWindow);
|
|
||||||
GET_USER_FUNC(SysCommand);
|
|
||||||
GET_USER_FUNC(UpdateLayeredWindow);
|
|
||||||
GET_USER_FUNC(WindowMessage);
|
|
||||||
GET_USER_FUNC(WindowPosChanging);
|
|
||||||
GET_USER_FUNC(WindowPosChanged);
|
|
||||||
GET_USER_FUNC(SystemParametersInfo);
|
|
||||||
GET_USER_FUNC(ThreadDetach);
|
|
||||||
#undef GET_USER_FUNC
|
|
||||||
}
|
}
|
||||||
|
|
||||||
prev = InterlockedCompareExchangePointer( (void **)&USER_Driver, driver, &lazy_load_driver );
|
if (module) __wine_set_display_driver( module );
|
||||||
if (prev != &lazy_load_driver)
|
|
||||||
{
|
|
||||||
/* another thread beat us to it */
|
|
||||||
HeapFree( GetProcessHeap(), 0, driver );
|
|
||||||
driver = prev;
|
|
||||||
}
|
|
||||||
else LdrAddRefDll( 0, graphics_driver );
|
|
||||||
|
|
||||||
__wine_set_display_driver( graphics_driver );
|
|
||||||
register_builtin_classes();
|
register_builtin_classes();
|
||||||
|
return USER_Driver;
|
||||||
return driver;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* unload the graphics driver on process exit */
|
/* unload the graphics driver on process exit */
|
||||||
|
@ -639,3 +585,72 @@ static struct user_driver_funcs lazy_load_driver =
|
||||||
/* thread management */
|
/* thread management */
|
||||||
nulldrv_ThreadDetach
|
nulldrv_ThreadDetach
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version )
|
||||||
|
{
|
||||||
|
struct user_driver_funcs *driver, *prev;
|
||||||
|
|
||||||
|
if (version != WINE_GDI_DRIVER_VERSION)
|
||||||
|
{
|
||||||
|
ERR( "version mismatch, driver wants %u but user32 has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
driver = HeapAlloc( GetProcessHeap(), 0, sizeof(*driver) );
|
||||||
|
*driver = *funcs;
|
||||||
|
|
||||||
|
#define SET_USER_FUNC(name) \
|
||||||
|
do { if (!driver->p##name) driver->p##name = nulldrv_##name; } while(0)
|
||||||
|
|
||||||
|
SET_USER_FUNC(ActivateKeyboardLayout);
|
||||||
|
SET_USER_FUNC(Beep);
|
||||||
|
SET_USER_FUNC(GetKeyNameText);
|
||||||
|
SET_USER_FUNC(GetKeyboardLayoutList);
|
||||||
|
SET_USER_FUNC(MapVirtualKeyEx);
|
||||||
|
SET_USER_FUNC(RegisterHotKey);
|
||||||
|
SET_USER_FUNC(ToUnicodeEx);
|
||||||
|
SET_USER_FUNC(UnregisterHotKey);
|
||||||
|
SET_USER_FUNC(VkKeyScanEx);
|
||||||
|
SET_USER_FUNC(DestroyCursorIcon);
|
||||||
|
SET_USER_FUNC(SetCursor);
|
||||||
|
SET_USER_FUNC(GetCursorPos);
|
||||||
|
SET_USER_FUNC(SetCursorPos);
|
||||||
|
SET_USER_FUNC(ClipCursor);
|
||||||
|
SET_USER_FUNC(UpdateClipboard);
|
||||||
|
SET_USER_FUNC(ChangeDisplaySettingsEx);
|
||||||
|
SET_USER_FUNC(EnumDisplayMonitors);
|
||||||
|
SET_USER_FUNC(EnumDisplaySettingsEx);
|
||||||
|
SET_USER_FUNC(GetMonitorInfo);
|
||||||
|
SET_USER_FUNC(CreateDesktopWindow);
|
||||||
|
SET_USER_FUNC(CreateWindow);
|
||||||
|
SET_USER_FUNC(DestroyWindow);
|
||||||
|
SET_USER_FUNC(FlashWindowEx);
|
||||||
|
SET_USER_FUNC(GetDC);
|
||||||
|
SET_USER_FUNC(MsgWaitForMultipleObjectsEx);
|
||||||
|
SET_USER_FUNC(ReleaseDC);
|
||||||
|
SET_USER_FUNC(ScrollDC);
|
||||||
|
SET_USER_FUNC(SetCapture);
|
||||||
|
SET_USER_FUNC(SetFocus);
|
||||||
|
SET_USER_FUNC(SetLayeredWindowAttributes);
|
||||||
|
SET_USER_FUNC(SetParent);
|
||||||
|
SET_USER_FUNC(SetWindowRgn);
|
||||||
|
SET_USER_FUNC(SetWindowIcon);
|
||||||
|
SET_USER_FUNC(SetWindowStyle);
|
||||||
|
SET_USER_FUNC(SetWindowText);
|
||||||
|
SET_USER_FUNC(ShowWindow);
|
||||||
|
SET_USER_FUNC(SysCommand);
|
||||||
|
SET_USER_FUNC(UpdateLayeredWindow);
|
||||||
|
SET_USER_FUNC(WindowMessage);
|
||||||
|
SET_USER_FUNC(WindowPosChanging);
|
||||||
|
SET_USER_FUNC(WindowPosChanged);
|
||||||
|
SET_USER_FUNC(SystemParametersInfo);
|
||||||
|
SET_USER_FUNC(ThreadDetach);
|
||||||
|
#undef SET_USER_FUNC
|
||||||
|
|
||||||
|
prev = InterlockedCompareExchangePointer( (void **)&USER_Driver, driver, &lazy_load_driver );
|
||||||
|
if (prev != &lazy_load_driver)
|
||||||
|
{
|
||||||
|
/* another thread beat us to it */
|
||||||
|
HeapFree( GetProcessHeap(), 0, driver );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -838,3 +838,4 @@
|
||||||
#
|
#
|
||||||
@ cdecl __wine_send_input(long ptr ptr)
|
@ cdecl __wine_send_input(long ptr ptr)
|
||||||
@ cdecl __wine_set_pixel_format(long long)
|
@ cdecl __wine_set_pixel_format(long long)
|
||||||
|
@ cdecl __wine_set_user_driver(ptr long)
|
||||||
|
|
|
@ -80,6 +80,33 @@ extern int ioctl_set_cursor( int id, int width, int height,
|
||||||
* USER driver
|
* USER driver
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
extern INT CDECL ANDROID_GetKeyNameText( LONG lparam, LPWSTR buffer, INT size ) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL ANDROID_MapVirtualKeyEx( UINT code, UINT maptype, HKL hkl ) DECLSPEC_HIDDEN;
|
||||||
|
extern SHORT CDECL ANDROID_VkKeyScanEx( WCHAR ch, HKL hkl ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetCursor( HCURSOR handle ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL ANDROID_CreateWindow( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_DestroyWindow( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||||
|
extern DWORD CDECL ANDROID_MsgWaitForMultipleObjectsEx( DWORD count, const HANDLE *handles, DWORD timeout,
|
||||||
|
DWORD mask, DWORD flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetCursor( HCURSOR handle ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha,
|
||||||
|
DWORD flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetParent( HWND hwnd, HWND parent, HWND old_parent ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetCapture( HWND hwnd, UINT flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_SetWindowStyle( HWND hwnd, INT offset, STYLESTRUCT *style ) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL ANDROID_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL ANDROID_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO *info,
|
||||||
|
const RECT *window_rect ) DECLSPEC_HIDDEN;
|
||||||
|
extern LRESULT CDECL ANDROID_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL ANDROID_WindowPosChanging( HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *window_rect, const RECT *client_rect,
|
||||||
|
RECT *visible_rect, struct window_surface **surface ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL ANDROID_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *window_rect, const RECT *client_rect,
|
||||||
|
const RECT *visible_rect, const RECT *valid_rects,
|
||||||
|
struct window_surface *surface ) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
extern unsigned int screen_width DECLSPEC_HIDDEN;
|
extern unsigned int screen_width DECLSPEC_HIDDEN;
|
||||||
extern unsigned int screen_height DECLSPEC_HIDDEN;
|
extern unsigned int screen_height DECLSPEC_HIDDEN;
|
||||||
extern RECT virtual_screen_rect DECLSPEC_HIDDEN;
|
extern RECT virtual_screen_rect DECLSPEC_HIDDEN;
|
||||||
|
|
|
@ -58,7 +58,7 @@ typedef struct
|
||||||
struct gdi_physdev dev;
|
struct gdi_physdev dev;
|
||||||
} ANDROID_PDEVICE;
|
} ANDROID_PDEVICE;
|
||||||
|
|
||||||
static const struct gdi_dc_funcs android_drv_funcs;
|
static const struct user_driver_funcs android_drv_funcs;
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
@ -158,7 +158,7 @@ static BOOL CDECL ANDROID_CreateDC( PHYSDEV *pdev, LPCWSTR device, LPCWSTR outpu
|
||||||
|
|
||||||
if (!physdev) return FALSE;
|
if (!physdev) return FALSE;
|
||||||
|
|
||||||
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs );
|
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs.dc_funcs );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ static BOOL CDECL ANDROID_CreateCompatibleDC( PHYSDEV orig, PHYSDEV *pdev )
|
||||||
|
|
||||||
if (!physdev) return FALSE;
|
if (!physdev) return FALSE;
|
||||||
|
|
||||||
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs );
|
push_dc_driver( pdev, &physdev->dev, &android_drv_funcs.dc_funcs );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,102 +281,35 @@ static struct opengl_funcs * CDECL ANDROID_wine_get_wgl_driver( PHYSDEV dev, UIN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct gdi_dc_funcs android_drv_funcs =
|
static const struct user_driver_funcs android_drv_funcs =
|
||||||
{
|
{
|
||||||
NULL, /* pAbortDoc */
|
.dc_funcs.pCreateCompatibleDC = ANDROID_CreateCompatibleDC,
|
||||||
NULL, /* pAbortPath */
|
.dc_funcs.pCreateDC = ANDROID_CreateDC,
|
||||||
NULL, /* pAlphaBlend */
|
.dc_funcs.pDeleteDC = ANDROID_DeleteDC,
|
||||||
NULL, /* pAngleArc */
|
.dc_funcs.wine_get_wgl_driver = ANDROID_wine_get_wgl_driver,
|
||||||
NULL, /* pArc */
|
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
|
||||||
NULL, /* pArcTo */
|
|
||||||
NULL, /* pBeginPath */
|
.pGetKeyNameText = ANDROID_GetKeyNameText,
|
||||||
NULL, /* pBlendImage */
|
.pMapVirtualKeyEx = ANDROID_MapVirtualKeyEx,
|
||||||
NULL, /* pChord */
|
.pVkKeyScanEx = ANDROID_VkKeyScanEx,
|
||||||
NULL, /* pCloseFigure */
|
.pSetCursor = ANDROID_SetCursor,
|
||||||
ANDROID_CreateCompatibleDC, /* pCreateCompatibleDC */
|
.pChangeDisplaySettingsEx = ANDROID_ChangeDisplaySettingsEx,
|
||||||
ANDROID_CreateDC, /* pCreateDC */
|
.pEnumDisplayMonitors = ANDROID_EnumDisplayMonitors,
|
||||||
ANDROID_DeleteDC, /* pDeleteDC */
|
.pEnumDisplaySettingsEx = ANDROID_EnumDisplaySettingsEx,
|
||||||
NULL, /* pDeleteObject */
|
.pGetMonitorInfo = ANDROID_GetMonitorInfo,
|
||||||
NULL, /* pEllipse */
|
.pCreateWindow = ANDROID_CreateWindow,
|
||||||
NULL, /* pEndDoc */
|
.pDestroyWindow = ANDROID_DestroyWindow,
|
||||||
NULL, /* pEndPage */
|
.pMsgWaitForMultipleObjectsEx = ANDROID_MsgWaitForMultipleObjectsEx,
|
||||||
NULL, /* pEndPath */
|
.pSetCapture = ANDROID_SetCapture,
|
||||||
NULL, /* pEnumFonts */
|
.pSetLayeredWindowAttributes = ANDROID_SetLayeredWindowAttributes,
|
||||||
NULL, /* pExtEscape */
|
.pSetParent = ANDROID_SetParent,
|
||||||
NULL, /* pExtFloodFill */
|
.pSetWindowRgn = ANDROID_SetWindowRgn,
|
||||||
NULL, /* pExtTextOut */
|
.pSetWindowStyle = ANDROID_SetWindowStyle,
|
||||||
NULL, /* pFillPath */
|
.pShowWindow = ANDROID_ShowWindow,
|
||||||
NULL, /* pFillRgn */
|
.pUpdateLayeredWindow = ANDROID_UpdateLayeredWindow,
|
||||||
NULL, /* pFontIsLinked */
|
.pWindowMessage = ANDROID_WindowMessage,
|
||||||
NULL, /* pFrameRgn */
|
.pWindowPosChanging = ANDROID_WindowPosChanging,
|
||||||
NULL, /* pGetBoundsRect */
|
.pWindowPosChanged = ANDROID_WindowPosChanged,
|
||||||
NULL, /* pGetCharABCWidths */
|
|
||||||
NULL, /* pGetCharABCWidthsI */
|
|
||||||
NULL, /* pGetCharWidth */
|
|
||||||
NULL, /* pGetCharWidthInfo */
|
|
||||||
NULL, /* pGetDeviceCaps */
|
|
||||||
NULL, /* pGetDeviceGammaRamp */
|
|
||||||
NULL, /* pGetFontData */
|
|
||||||
NULL, /* pGetFontRealizationInfo */
|
|
||||||
NULL, /* pGetFontUnicodeRanges */
|
|
||||||
NULL, /* pGetGlyphIndices */
|
|
||||||
NULL, /* pGetGlyphOutline */
|
|
||||||
NULL, /* pGetICMProfile */
|
|
||||||
NULL, /* pGetImage */
|
|
||||||
NULL, /* pGetKerningPairs */
|
|
||||||
NULL, /* pGetNearestColor */
|
|
||||||
NULL, /* pGetOutlineTextMetrics */
|
|
||||||
NULL, /* pGetPixel */
|
|
||||||
NULL, /* pGetSystemPaletteEntries */
|
|
||||||
NULL, /* pGetTextCharsetInfo */
|
|
||||||
NULL, /* pGetTextExtentExPoint */
|
|
||||||
NULL, /* pGetTextExtentExPointI */
|
|
||||||
NULL, /* pGetTextFace */
|
|
||||||
NULL, /* pGetTextMetrics */
|
|
||||||
NULL, /* pGradientFill */
|
|
||||||
NULL, /* pInvertRgn */
|
|
||||||
NULL, /* pLineTo */
|
|
||||||
NULL, /* pMoveTo */
|
|
||||||
NULL, /* pPaintRgn */
|
|
||||||
NULL, /* pPatBlt */
|
|
||||||
NULL, /* pPie */
|
|
||||||
NULL, /* pPolyBezier */
|
|
||||||
NULL, /* pPolyBezierTo */
|
|
||||||
NULL, /* pPolyDraw */
|
|
||||||
NULL, /* pPolyPolygon */
|
|
||||||
NULL, /* pPolyPolyline */
|
|
||||||
NULL, /* pPolylineTo */
|
|
||||||
NULL, /* pPutImage */
|
|
||||||
NULL, /* pRealizeDefaultPalette */
|
|
||||||
NULL, /* pRealizePalette */
|
|
||||||
NULL, /* pRectangle */
|
|
||||||
NULL, /* pResetDC */
|
|
||||||
NULL, /* pRoundRect */
|
|
||||||
NULL, /* pSelectBitmap */
|
|
||||||
NULL, /* pSelectBrush */
|
|
||||||
NULL, /* pSelectFont */
|
|
||||||
NULL, /* pSelectPen */
|
|
||||||
NULL, /* pSetBkColor */
|
|
||||||
NULL, /* pSetBoundsRect */
|
|
||||||
NULL, /* pSetDCBrushColor */
|
|
||||||
NULL, /* pSetDCPenColor */
|
|
||||||
NULL, /* pSetDIBitsToDevice */
|
|
||||||
NULL, /* pSetDeviceClipping */
|
|
||||||
NULL, /* pSetDeviceGammaRamp */
|
|
||||||
NULL, /* pSetPixel */
|
|
||||||
NULL, /* pSetTextColor */
|
|
||||||
NULL, /* pStartDoc */
|
|
||||||
NULL, /* pStartPage */
|
|
||||||
NULL, /* pStretchBlt */
|
|
||||||
NULL, /* pStretchDIBits */
|
|
||||||
NULL, /* pStrokeAndFillPath */
|
|
||||||
NULL, /* pStrokePath */
|
|
||||||
NULL, /* pUnrealizePalette */
|
|
||||||
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
|
|
||||||
NULL, /* pD3DKMTSetVidPnSourceOwner */
|
|
||||||
ANDROID_wine_get_wgl_driver, /* wine_get_wgl_driver */
|
|
||||||
NULL, /* wine_get_vulkan_driver */
|
|
||||||
GDI_PRIORITY_GRAPHICS_DRV /* priority */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -390,7 +323,7 @@ const struct gdi_dc_funcs * CDECL ANDROID_get_gdi_driver( unsigned int version )
|
||||||
ERR( "version mismatch, gdi32 wants %u but wineandroid has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
ERR( "version mismatch, gdi32 wants %u but wineandroid has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return &android_drv_funcs;
|
return &android_drv_funcs.dc_funcs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -620,6 +553,7 @@ static BOOL process_attach(void)
|
||||||
__asm__( "mov %0,%%fs" :: "r" (old_fs) );
|
__asm__( "mov %0,%%fs" :: "r" (old_fs) );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
__wine_set_user_driver( &android_drv_funcs, WINE_GDI_DRIVER_VERSION );
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,30 +2,6 @@
|
||||||
|
|
||||||
@ cdecl wine_get_gdi_driver(long) ANDROID_get_gdi_driver
|
@ cdecl wine_get_gdi_driver(long) ANDROID_get_gdi_driver
|
||||||
|
|
||||||
# USER driver
|
|
||||||
|
|
||||||
@ cdecl GetKeyNameText(long ptr long) ANDROID_GetKeyNameText
|
|
||||||
@ cdecl MapVirtualKeyEx(long long long) ANDROID_MapVirtualKeyEx
|
|
||||||
@ cdecl VkKeyScanEx(long long) ANDROID_VkKeyScanEx
|
|
||||||
@ cdecl SetCursor(long) ANDROID_SetCursor
|
|
||||||
@ cdecl ChangeDisplaySettingsEx(ptr ptr long long long) ANDROID_ChangeDisplaySettingsEx
|
|
||||||
@ cdecl EnumDisplayMonitors(long ptr ptr long) ANDROID_EnumDisplayMonitors
|
|
||||||
@ cdecl EnumDisplaySettingsEx(ptr long ptr long) ANDROID_EnumDisplaySettingsEx
|
|
||||||
@ cdecl GetMonitorInfo(long ptr) ANDROID_GetMonitorInfo
|
|
||||||
@ cdecl CreateWindow(long) ANDROID_CreateWindow
|
|
||||||
@ cdecl DestroyWindow(long) ANDROID_DestroyWindow
|
|
||||||
@ cdecl MsgWaitForMultipleObjectsEx(long ptr long long long) ANDROID_MsgWaitForMultipleObjectsEx
|
|
||||||
@ cdecl SetCapture(long long) ANDROID_SetCapture
|
|
||||||
@ cdecl SetLayeredWindowAttributes(long long long long) ANDROID_SetLayeredWindowAttributes
|
|
||||||
@ cdecl SetParent(long long long) ANDROID_SetParent
|
|
||||||
@ cdecl SetWindowRgn(long long long) ANDROID_SetWindowRgn
|
|
||||||
@ cdecl SetWindowStyle(ptr long ptr) ANDROID_SetWindowStyle
|
|
||||||
@ cdecl ShowWindow(long long ptr long) ANDROID_ShowWindow
|
|
||||||
@ cdecl UpdateLayeredWindow(long ptr ptr) ANDROID_UpdateLayeredWindow
|
|
||||||
@ cdecl WindowMessage(long long long long) ANDROID_WindowMessage
|
|
||||||
@ cdecl WindowPosChanging(long long long ptr ptr ptr ptr) ANDROID_WindowPosChanging
|
|
||||||
@ cdecl WindowPosChanged(long long long ptr ptr ptr ptr ptr) ANDROID_WindowPosChanged
|
|
||||||
|
|
||||||
# Desktop
|
# Desktop
|
||||||
@ cdecl wine_create_desktop(long long) ANDROID_create_desktop
|
@ cdecl wine_create_desktop(long long) ANDROID_create_desktop
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ static CRITICAL_SECTION_DEBUG critsect_debug =
|
||||||
static CRITICAL_SECTION device_data_section = { &critsect_debug, -1, 0, 0, 0, 0 };
|
static CRITICAL_SECTION device_data_section = { &critsect_debug, -1, 0, 0, 0, 0 };
|
||||||
|
|
||||||
|
|
||||||
static const struct gdi_dc_funcs macdrv_funcs;
|
static const struct user_driver_funcs macdrv_funcs;
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* compute_desktop_rect
|
* compute_desktop_rect
|
||||||
|
@ -184,7 +184,7 @@ static BOOL CDECL macdrv_CreateDC(PHYSDEV *pdev, LPCWSTR device, LPCWSTR output,
|
||||||
|
|
||||||
if (!physDev) return FALSE;
|
if (!physDev) return FALSE;
|
||||||
|
|
||||||
push_dc_driver(pdev, &physDev->dev, &macdrv_funcs);
|
push_dc_driver(pdev, &physDev->dev, &macdrv_funcs.dc_funcs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -201,7 +201,7 @@ static BOOL CDECL macdrv_CreateCompatibleDC(PHYSDEV orig, PHYSDEV *pdev)
|
||||||
|
|
||||||
if (!physDev) return FALSE;
|
if (!physDev) return FALSE;
|
||||||
|
|
||||||
push_dc_driver(pdev, &physDev->dev, &macdrv_funcs);
|
push_dc_driver(pdev, &physDev->dev, &macdrv_funcs.dc_funcs);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,105 +260,63 @@ static INT CDECL macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct gdi_dc_funcs macdrv_funcs =
|
static const struct user_driver_funcs macdrv_funcs =
|
||||||
{
|
{
|
||||||
NULL, /* pAbortDoc */
|
.dc_funcs.pCreateCompatibleDC = macdrv_CreateCompatibleDC,
|
||||||
NULL, /* pAbortPath */
|
.dc_funcs.pCreateDC = macdrv_CreateDC,
|
||||||
NULL, /* pAlphaBlend */
|
.dc_funcs.pDeleteDC = macdrv_DeleteDC,
|
||||||
NULL, /* pAngleArc */
|
.dc_funcs.pGetDeviceCaps = macdrv_GetDeviceCaps,
|
||||||
NULL, /* pArc */
|
.dc_funcs.pGetDeviceGammaRamp = macdrv_GetDeviceGammaRamp,
|
||||||
NULL, /* pArcTo */
|
.dc_funcs.pSetDeviceGammaRamp = macdrv_SetDeviceGammaRamp,
|
||||||
NULL, /* pBeginPath */
|
.dc_funcs.wine_get_wgl_driver = macdrv_wine_get_wgl_driver,
|
||||||
NULL, /* pBlendImage */
|
.dc_funcs.wine_get_vulkan_driver = macdrv_wine_get_vulkan_driver,
|
||||||
NULL, /* pChord */
|
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
|
||||||
NULL, /* pCloseFigure */
|
|
||||||
macdrv_CreateCompatibleDC, /* pCreateCompatibleDC */
|
.pActivateKeyboardLayout = macdrv_ActivateKeyboardLayout,
|
||||||
macdrv_CreateDC, /* pCreateDC */
|
.pBeep = macdrv_Beep,
|
||||||
macdrv_DeleteDC, /* pDeleteDC */
|
.pChangeDisplaySettingsEx = macdrv_ChangeDisplaySettingsEx,
|
||||||
NULL, /* pDeleteObject */
|
.pClipCursor = macdrv_ClipCursor,
|
||||||
NULL, /* pEllipse */
|
.pCreateDesktopWindow = macdrv_CreateDesktopWindow,
|
||||||
NULL, /* pEndDoc */
|
.pCreateWindow = macdrv_CreateWindow,
|
||||||
NULL, /* pEndPage */
|
.pDestroyCursorIcon = macdrv_DestroyCursorIcon,
|
||||||
NULL, /* pEndPath */
|
.pDestroyWindow = macdrv_DestroyWindow,
|
||||||
NULL, /* pEnumFonts */
|
.pEnumDisplaySettingsEx = macdrv_EnumDisplaySettingsEx,
|
||||||
NULL, /* pExtEscape */
|
.pGetCursorPos = macdrv_GetCursorPos,
|
||||||
NULL, /* pExtFloodFill */
|
.pGetKeyboardLayoutList = macdrv_GetKeyboardLayoutList,
|
||||||
NULL, /* pExtTextOut */
|
.pGetKeyNameText = macdrv_GetKeyNameText,
|
||||||
NULL, /* pFillPath */
|
.pMapVirtualKeyEx = macdrv_MapVirtualKeyEx,
|
||||||
NULL, /* pFillRgn */
|
.pMsgWaitForMultipleObjectsEx = macdrv_MsgWaitForMultipleObjectsEx,
|
||||||
NULL, /* pFontIsLinked */
|
.pRegisterHotKey = macdrv_RegisterHotKey,
|
||||||
NULL, /* pFrameRgn */
|
.pSetCapture = macdrv_SetCapture,
|
||||||
NULL, /* pGetBoundsRect */
|
.pSetCursor = macdrv_SetCursor,
|
||||||
NULL, /* pGetCharABCWidths */
|
.pSetCursorPos = macdrv_SetCursorPos,
|
||||||
NULL, /* pGetCharABCWidthsI */
|
.pSetFocus = macdrv_SetFocus,
|
||||||
NULL, /* pGetCharWidth */
|
.pSetLayeredWindowAttributes = macdrv_SetLayeredWindowAttributes,
|
||||||
NULL, /* pGetCharWidthInfo */
|
.pSetParent = macdrv_SetParent,
|
||||||
macdrv_GetDeviceCaps, /* pGetDeviceCaps */
|
.pSetWindowRgn = macdrv_SetWindowRgn,
|
||||||
macdrv_GetDeviceGammaRamp, /* pGetDeviceGammaRamp */
|
.pSetWindowStyle = macdrv_SetWindowStyle,
|
||||||
NULL, /* pGetFontData */
|
.pSetWindowText = macdrv_SetWindowText,
|
||||||
NULL, /* pGetFontRealizationInfo */
|
.pShowWindow = macdrv_ShowWindow,
|
||||||
NULL, /* pGetFontUnicodeRanges */
|
.pSysCommand =macdrv_SysCommand,
|
||||||
NULL, /* pGetGlyphIndices */
|
.pSystemParametersInfo = macdrv_SystemParametersInfo,
|
||||||
NULL, /* pGetGlyphOutline */
|
.pThreadDetach = macdrv_ThreadDetach,
|
||||||
NULL, /* pGetICMProfile */
|
.pToUnicodeEx = macdrv_ToUnicodeEx,
|
||||||
NULL, /* pGetImage */
|
.pUnregisterHotKey = macdrv_UnregisterHotKey,
|
||||||
NULL, /* pGetKerningPairs */
|
.pUpdateClipboard = macdrv_UpdateClipboard,
|
||||||
NULL, /* pGetNearestColor */
|
.pUpdateLayeredWindow = macdrv_UpdateLayeredWindow,
|
||||||
NULL, /* pGetOutlineTextMetrics */
|
.pVkKeyScanEx = macdrv_VkKeyScanEx,
|
||||||
NULL, /* pGetPixel */
|
.pWindowMessage = macdrv_WindowMessage,
|
||||||
NULL, /* pGetSystemPaletteEntries */
|
.pWindowPosChanged = macdrv_WindowPosChanged,
|
||||||
NULL, /* pGetTextCharsetInfo */
|
.pWindowPosChanging = macdrv_WindowPosChanging,
|
||||||
NULL, /* pGetTextExtentExPoint */
|
|
||||||
NULL, /* pGetTextExtentExPointI */
|
|
||||||
NULL, /* pGetTextFace */
|
|
||||||
NULL, /* pGetTextMetrics */
|
|
||||||
NULL, /* pGradientFill */
|
|
||||||
NULL, /* pInvertRgn */
|
|
||||||
NULL, /* pLineTo */
|
|
||||||
NULL, /* pMoveTo */
|
|
||||||
NULL, /* pPaintRgn */
|
|
||||||
NULL, /* pPatBlt */
|
|
||||||
NULL, /* pPie */
|
|
||||||
NULL, /* pPolyBezier */
|
|
||||||
NULL, /* pPolyBezierTo */
|
|
||||||
NULL, /* pPolyDraw */
|
|
||||||
NULL, /* pPolyPolygon */
|
|
||||||
NULL, /* pPolyPolyline */
|
|
||||||
NULL, /* pPolylineTo */
|
|
||||||
NULL, /* pPutImage */
|
|
||||||
NULL, /* pRealizeDefaultPalette */
|
|
||||||
NULL, /* pRealizePalette */
|
|
||||||
NULL, /* pRectangle */
|
|
||||||
NULL, /* pResetDC */
|
|
||||||
NULL, /* pRoundRect */
|
|
||||||
NULL, /* pSelectBitmap */
|
|
||||||
NULL, /* pSelectBrush */
|
|
||||||
NULL, /* pSelectFont */
|
|
||||||
NULL, /* pSelectPen */
|
|
||||||
NULL, /* pSetBkColor */
|
|
||||||
NULL, /* pSetBoundsRect */
|
|
||||||
NULL, /* pSetDCBrushColor */
|
|
||||||
NULL, /* pSetDCPenColor */
|
|
||||||
NULL, /* pSetDIBitsToDevice */
|
|
||||||
NULL, /* pSetDeviceClipping */
|
|
||||||
macdrv_SetDeviceGammaRamp, /* pSetDeviceGammaRamp */
|
|
||||||
NULL, /* pSetPixel */
|
|
||||||
NULL, /* pSetTextColor */
|
|
||||||
NULL, /* pStartDoc */
|
|
||||||
NULL, /* pStartPage */
|
|
||||||
NULL, /* pStretchBlt */
|
|
||||||
NULL, /* pStretchDIBits */
|
|
||||||
NULL, /* pStrokeAndFillPath */
|
|
||||||
NULL, /* pStrokePath */
|
|
||||||
NULL, /* pUnrealizePalette */
|
|
||||||
NULL, /* pD3DKMTCheckVidPnExclusiveOwnership */
|
|
||||||
NULL, /* pD3DKMTSetVidPnSourceOwner */
|
|
||||||
macdrv_wine_get_wgl_driver, /* wine_get_wgl_driver */
|
|
||||||
macdrv_wine_get_vulkan_driver, /* wine_get_vulkan_driver */
|
|
||||||
GDI_PRIORITY_GRAPHICS_DRV /* priority */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void init_user_driver(void)
|
||||||
|
{
|
||||||
|
__wine_set_user_driver( &macdrv_funcs, WINE_GDI_DRIVER_VERSION );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* macdrv_get_gdi_driver
|
* macdrv_get_gdi_driver
|
||||||
*/
|
*/
|
||||||
|
@ -369,5 +327,5 @@ const struct gdi_dc_funcs * CDECL macdrv_get_gdi_driver(unsigned int version)
|
||||||
ERR("version mismatch, gdi32 wants %u but winemac has %u\n", version, WINE_GDI_DRIVER_VERSION);
|
ERR("version mismatch, gdi32 wants %u but winemac has %u\n", version, WINE_GDI_DRIVER_VERSION);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return &macdrv_funcs;
|
return &macdrv_funcs.dc_funcs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -124,6 +124,58 @@ static inline RECT rect_from_cgrect(CGRect cgrect)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern BOOL CDECL macdrv_ActivateKeyboardLayout(HKL hkl, UINT flags) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_Beep(void) DECLSPEC_HIDDEN;
|
||||||
|
extern LONG CDECL macdrv_ChangeDisplaySettingsEx(LPCWSTR devname, LPDEVMODEW devmode,
|
||||||
|
HWND hwnd, DWORD flags, LPVOID lpvoid) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_EnumDisplaySettingsEx(LPCWSTR devname, DWORD mode,
|
||||||
|
LPDEVMODEW devmode, DWORD flags) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_GetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_SetDeviceGammaRamp(PHYSDEV dev, LPVOID ramp) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_ClipCursor(LPCRECT clip) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_CreateDesktopWindow(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_CreateWindow(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_DestroyWindow(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetFocus(HWND hwnd) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alpha,
|
||||||
|
DWORD flags) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetParent(HWND hwnd, HWND parent, HWND old_parent) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetWindowRgn(HWND hwnd, HRGN hrgn, BOOL redraw) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetWindowStyle(HWND hwnd, INT offset, STYLESTRUCT *style) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetWindowText(HWND hwnd, LPCWSTR text) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL macdrv_ShowWindow(HWND hwnd, INT cmd, RECT *rect, UINT swp) DECLSPEC_HIDDEN;
|
||||||
|
extern LRESULT CDECL macdrv_SysCommand(HWND hwnd, WPARAM wparam, LPARAM lparam) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_UpdateLayeredWindow(HWND hwnd, const UPDATELAYEREDWINDOWINFO *info,
|
||||||
|
const RECT *window_rect) DECLSPEC_HIDDEN;
|
||||||
|
extern LRESULT CDECL macdrv_WindowMessage(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_WindowPosChanging(HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *window_rect, const RECT *client_rect,
|
||||||
|
RECT *visible_rect, struct window_surface **surface) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_WindowPosChanged(HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *window_rect, const RECT *client_rect,
|
||||||
|
const RECT *visible_rect, const RECT *valid_rects,
|
||||||
|
struct window_surface *surface) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_DestroyCursorIcon(HCURSOR cursor) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_ClipCursor(LPCRECT clip) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_GetCursorPos(LPPOINT pos) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetCapture(HWND hwnd, UINT flags) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_SetCursor(HCURSOR cursor) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_SetCursorPos(INT x, INT y) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_RegisterHotKey(HWND hwnd, UINT mod_flags, UINT vkey) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_UnregisterHotKey(HWND hwnd, UINT modifiers, UINT vkey) DECLSPEC_HIDDEN;
|
||||||
|
extern SHORT CDECL macdrv_VkKeyScanEx(WCHAR wChar, HKL hkl) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL macdrv_MapVirtualKeyEx(UINT wCode, UINT wMapType, HKL hkl) DECLSPEC_HIDDEN;
|
||||||
|
extern INT CDECL macdrv_ToUnicodeEx(UINT virtKey, UINT scanCode, const BYTE *lpKeyState,
|
||||||
|
LPWSTR bufW, int bufW_size, UINT flags, HKL hkl) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL macdrv_GetKeyboardLayoutList(INT size, HKL *list) DECLSPEC_HIDDEN;
|
||||||
|
extern INT CDECL macdrv_GetKeyNameText(LONG lparam, LPWSTR buffer, INT size) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL macdrv_SystemParametersInfo(UINT action, UINT int_param, void *ptr_param,
|
||||||
|
UINT flags) DECLSPEC_HIDDEN;
|
||||||
|
extern DWORD CDECL macdrv_MsgWaitForMultipleObjectsEx(DWORD count, const HANDLE *handles,
|
||||||
|
DWORD timeout, DWORD mask, DWORD flags) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL macdrv_ThreadDetach(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
|
||||||
/* macdrv private window data */
|
/* macdrv private window data */
|
||||||
struct macdrv_win_data
|
struct macdrv_win_data
|
||||||
{
|
{
|
||||||
|
@ -225,6 +277,7 @@ extern CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP
|
||||||
|
|
||||||
extern void check_retina_status(void) DECLSPEC_HIDDEN;
|
extern void check_retina_status(void) DECLSPEC_HIDDEN;
|
||||||
extern void macdrv_init_display_devices(BOOL force) DECLSPEC_HIDDEN;
|
extern void macdrv_init_display_devices(BOOL force) DECLSPEC_HIDDEN;
|
||||||
|
extern void init_user_driver(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Mac IME driver
|
* Mac IME driver
|
||||||
|
|
|
@ -300,6 +300,7 @@ static BOOL process_attach(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
macdrv_init_display_devices(FALSE);
|
macdrv_init_display_devices(FALSE);
|
||||||
|
init_user_driver();
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,45 +2,6 @@
|
||||||
|
|
||||||
@ cdecl wine_get_gdi_driver(long) macdrv_get_gdi_driver
|
@ cdecl wine_get_gdi_driver(long) macdrv_get_gdi_driver
|
||||||
|
|
||||||
# USER driver
|
|
||||||
|
|
||||||
@ cdecl ActivateKeyboardLayout(long long) macdrv_ActivateKeyboardLayout
|
|
||||||
@ cdecl Beep() macdrv_Beep
|
|
||||||
@ cdecl ChangeDisplaySettingsEx(ptr ptr long long long) macdrv_ChangeDisplaySettingsEx
|
|
||||||
@ cdecl ClipCursor(ptr) macdrv_ClipCursor
|
|
||||||
@ cdecl CreateDesktopWindow(long) macdrv_CreateDesktopWindow
|
|
||||||
@ cdecl CreateWindow(long) macdrv_CreateWindow
|
|
||||||
@ cdecl DestroyCursorIcon(long) macdrv_DestroyCursorIcon
|
|
||||||
@ cdecl DestroyWindow(long) macdrv_DestroyWindow
|
|
||||||
@ cdecl EnumDisplaySettingsEx(ptr long ptr long) macdrv_EnumDisplaySettingsEx
|
|
||||||
@ cdecl GetCursorPos(ptr) macdrv_GetCursorPos
|
|
||||||
@ cdecl GetKeyboardLayoutList(long ptr) macdrv_GetKeyboardLayoutList
|
|
||||||
@ cdecl GetKeyNameText(long ptr long) macdrv_GetKeyNameText
|
|
||||||
@ cdecl MapVirtualKeyEx(long long long) macdrv_MapVirtualKeyEx
|
|
||||||
@ cdecl MsgWaitForMultipleObjectsEx(long ptr long long long) macdrv_MsgWaitForMultipleObjectsEx
|
|
||||||
@ cdecl RegisterHotKey(long long long) macdrv_RegisterHotKey
|
|
||||||
@ cdecl SetCapture(long long) macdrv_SetCapture
|
|
||||||
@ cdecl SetCursor(long) macdrv_SetCursor
|
|
||||||
@ cdecl SetCursorPos(long long) macdrv_SetCursorPos
|
|
||||||
@ cdecl SetFocus(long) macdrv_SetFocus
|
|
||||||
@ cdecl SetLayeredWindowAttributes(long long long long) macdrv_SetLayeredWindowAttributes
|
|
||||||
@ cdecl SetParent(long long long) macdrv_SetParent
|
|
||||||
@ cdecl SetWindowRgn(long long long) macdrv_SetWindowRgn
|
|
||||||
@ cdecl SetWindowStyle(ptr long ptr) macdrv_SetWindowStyle
|
|
||||||
@ cdecl SetWindowText(long wstr) macdrv_SetWindowText
|
|
||||||
@ cdecl ShowWindow(long long ptr long) macdrv_ShowWindow
|
|
||||||
@ cdecl SysCommand(long long long) macdrv_SysCommand
|
|
||||||
@ cdecl SystemParametersInfo(long long ptr long) macdrv_SystemParametersInfo
|
|
||||||
@ cdecl ThreadDetach() macdrv_ThreadDetach
|
|
||||||
@ cdecl ToUnicodeEx(long long ptr ptr long long long) macdrv_ToUnicodeEx
|
|
||||||
@ cdecl UnregisterHotKey(long long long) macdrv_UnregisterHotKey
|
|
||||||
@ cdecl UpdateClipboard() macdrv_UpdateClipboard
|
|
||||||
@ cdecl UpdateLayeredWindow(long ptr ptr) macdrv_UpdateLayeredWindow
|
|
||||||
@ cdecl VkKeyScanEx(long long) macdrv_VkKeyScanEx
|
|
||||||
@ cdecl WindowMessage(long long long long) macdrv_WindowMessage
|
|
||||||
@ cdecl WindowPosChanged(long long long ptr ptr ptr ptr ptr) macdrv_WindowPosChanged
|
|
||||||
@ cdecl WindowPosChanging(long long long ptr ptr ptr ptr) macdrv_WindowPosChanging
|
|
||||||
|
|
||||||
# System tray
|
# System tray
|
||||||
@ cdecl wine_notify_icon(long ptr)
|
@ cdecl wine_notify_icon(long ptr)
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winuser.h"
|
|
||||||
#include "rpc.h"
|
#include "rpc.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "cfgmgr32.h"
|
#include "cfgmgr32.h"
|
||||||
|
|
|
@ -37,8 +37,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winuser.h"
|
|
||||||
#include "wingdi.h"
|
|
||||||
|
|
||||||
#include "x11drv.h"
|
#include "x11drv.h"
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ static Pixmap stock_bitmap_pixmap; /* phys bitmap for the default stock bitmap
|
||||||
|
|
||||||
static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
|
static INIT_ONCE init_once = INIT_ONCE_STATIC_INIT;
|
||||||
|
|
||||||
static const struct gdi_dc_funcs x11drv_funcs;
|
static const struct user_driver_funcs x11drv_funcs;
|
||||||
static const struct gdi_dc_funcs *xrender_funcs;
|
static const struct gdi_dc_funcs *xrender_funcs;
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
|
@ -93,7 +93,7 @@ static BOOL CDECL X11DRV_CreateDC( PHYSDEV *pdev, LPCWSTR device, LPCWSTR output
|
||||||
physDev->color_shifts = &X11DRV_PALETTE_default_shifts;
|
physDev->color_shifts = &X11DRV_PALETTE_default_shifts;
|
||||||
physDev->dc_rect = get_virtual_screen_rect();
|
physDev->dc_rect = get_virtual_screen_rect();
|
||||||
OffsetRect( &physDev->dc_rect, -physDev->dc_rect.left, -physDev->dc_rect.top );
|
OffsetRect( &physDev->dc_rect, -physDev->dc_rect.left, -physDev->dc_rect.top );
|
||||||
push_dc_driver( pdev, &physDev->dev, &x11drv_funcs );
|
push_dc_driver( pdev, &physDev->dev, &x11drv_funcs.dc_funcs );
|
||||||
if (xrender_funcs && !xrender_funcs->pCreateDC( pdev, device, output, initData )) return FALSE;
|
if (xrender_funcs && !xrender_funcs->pCreateDC( pdev, device, output, initData )) return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -110,7 +110,7 @@ static BOOL CDECL X11DRV_CreateCompatibleDC( PHYSDEV orig, PHYSDEV *pdev )
|
||||||
|
|
||||||
physDev->depth = 1;
|
physDev->depth = 1;
|
||||||
SetRect( &physDev->dc_rect, 0, 0, 1, 1 );
|
SetRect( &physDev->dc_rect, 0, 0, 1, 1 );
|
||||||
push_dc_driver( pdev, &physDev->dev, &x11drv_funcs );
|
push_dc_driver( pdev, &physDev->dev, &x11drv_funcs.dc_funcs );
|
||||||
if (orig) return TRUE; /* we already went through Xrender if we have an orig device */
|
if (orig) return TRUE; /* we already went through Xrender if we have an orig device */
|
||||||
if (xrender_funcs && !xrender_funcs->pCreateCompatibleDC( NULL, pdev )) return FALSE;
|
if (xrender_funcs && !xrender_funcs->pCreateCompatibleDC( NULL, pdev )) return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@ -340,105 +340,101 @@ static const struct vulkan_funcs * CDECL X11DRV_wine_get_vulkan_driver( PHYSDEV
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct gdi_dc_funcs x11drv_funcs =
|
static const struct user_driver_funcs x11drv_funcs =
|
||||||
{
|
{
|
||||||
NULL, /* pAbortDoc */
|
.dc_funcs.pArc = X11DRV_Arc,
|
||||||
NULL, /* pAbortPath */
|
.dc_funcs.pChord = X11DRV_Chord,
|
||||||
NULL, /* pAlphaBlend */
|
.dc_funcs.pCreateCompatibleDC = X11DRV_CreateCompatibleDC,
|
||||||
NULL, /* pAngleArc */
|
.dc_funcs.pCreateDC = X11DRV_CreateDC,
|
||||||
X11DRV_Arc, /* pArc */
|
.dc_funcs.pDeleteDC = X11DRV_DeleteDC,
|
||||||
NULL, /* pArcTo */
|
.dc_funcs.pEllipse = X11DRV_Ellipse,
|
||||||
NULL, /* pBeginPath */
|
.dc_funcs.pExtEscape = X11DRV_ExtEscape,
|
||||||
NULL, /* pBlendImage */
|
.dc_funcs.pExtFloodFill = X11DRV_ExtFloodFill,
|
||||||
X11DRV_Chord, /* pChord */
|
.dc_funcs.pFillPath = X11DRV_FillPath,
|
||||||
NULL, /* pCloseFigure */
|
.dc_funcs.pGetDeviceCaps = X11DRV_GetDeviceCaps,
|
||||||
X11DRV_CreateCompatibleDC, /* pCreateCompatibleDC */
|
.dc_funcs.pGetDeviceGammaRamp = X11DRV_GetDeviceGammaRamp,
|
||||||
X11DRV_CreateDC, /* pCreateDC */
|
.dc_funcs.pGetICMProfile = X11DRV_GetICMProfile,
|
||||||
X11DRV_DeleteDC, /* pDeleteDC */
|
.dc_funcs.pGetImage = X11DRV_GetImage,
|
||||||
NULL, /* pDeleteObject */
|
.dc_funcs.pGetNearestColor = X11DRV_GetNearestColor,
|
||||||
X11DRV_Ellipse, /* pEllipse */
|
.dc_funcs.pGetSystemPaletteEntries = X11DRV_GetSystemPaletteEntries,
|
||||||
NULL, /* pEndDoc */
|
.dc_funcs.pGradientFill = X11DRV_GradientFill,
|
||||||
NULL, /* pEndPage */
|
.dc_funcs.pLineTo = X11DRV_LineTo,
|
||||||
NULL, /* pEndPath */
|
.dc_funcs.pPaintRgn = X11DRV_PaintRgn,
|
||||||
NULL, /* pEnumFonts */
|
.dc_funcs.pPatBlt = X11DRV_PatBlt,
|
||||||
X11DRV_ExtEscape, /* pExtEscape */
|
.dc_funcs.pPie = X11DRV_Pie,
|
||||||
X11DRV_ExtFloodFill, /* pExtFloodFill */
|
.dc_funcs.pPolyPolygon = X11DRV_PolyPolygon,
|
||||||
NULL, /* pExtTextOut */
|
.dc_funcs.pPolyPolyline = X11DRV_PolyPolyline,
|
||||||
X11DRV_FillPath, /* pFillPath */
|
.dc_funcs.pPutImage = X11DRV_PutImage,
|
||||||
NULL, /* pFillRgn */
|
.dc_funcs.pRealizeDefaultPalette = X11DRV_RealizeDefaultPalette,
|
||||||
NULL, /* pFontIsLinked */
|
.dc_funcs.pRealizePalette = X11DRV_RealizePalette,
|
||||||
NULL, /* pFrameRgn */
|
.dc_funcs.pRectangle = X11DRV_Rectangle,
|
||||||
NULL, /* pGetBoundsRect */
|
.dc_funcs.pRoundRect = X11DRV_RoundRect,
|
||||||
NULL, /* pGetCharABCWidths */
|
.dc_funcs.pSelectBrush = X11DRV_SelectBrush,
|
||||||
NULL, /* pGetCharABCWidthsI */
|
.dc_funcs.pSelectFont = X11DRV_SelectFont,
|
||||||
NULL, /* pGetCharWidth */
|
.dc_funcs.pSelectPen = X11DRV_SelectPen,
|
||||||
NULL, /* pGetCharWidthInfo */
|
.dc_funcs.pSetBoundsRect = X11DRV_SetBoundsRect,
|
||||||
X11DRV_GetDeviceCaps, /* pGetDeviceCaps */
|
.dc_funcs.pSetDCBrushColor = X11DRV_SetDCBrushColor,
|
||||||
X11DRV_GetDeviceGammaRamp, /* pGetDeviceGammaRamp */
|
.dc_funcs.pSetDCPenColor = X11DRV_SetDCPenColor,
|
||||||
NULL, /* pGetFontData */
|
.dc_funcs.pSetDeviceClipping = X11DRV_SetDeviceClipping,
|
||||||
NULL, /* pGetFontRealizationInfo */
|
.dc_funcs.pSetDeviceGammaRamp = X11DRV_SetDeviceGammaRamp,
|
||||||
NULL, /* pGetFontUnicodeRanges */
|
.dc_funcs.pSetPixel = X11DRV_SetPixel,
|
||||||
NULL, /* pGetGlyphIndices */
|
.dc_funcs.pStretchBlt = X11DRV_StretchBlt,
|
||||||
NULL, /* pGetGlyphOutline */
|
.dc_funcs.pStrokeAndFillPath = X11DRV_StrokeAndFillPath,
|
||||||
X11DRV_GetICMProfile, /* pGetICMProfile */
|
.dc_funcs.pStrokePath = X11DRV_StrokePath,
|
||||||
X11DRV_GetImage, /* pGetImage */
|
.dc_funcs.pUnrealizePalette = X11DRV_UnrealizePalette,
|
||||||
NULL, /* pGetKerningPairs */
|
.dc_funcs.pD3DKMTCheckVidPnExclusiveOwnership = X11DRV_D3DKMTCheckVidPnExclusiveOwnership,
|
||||||
X11DRV_GetNearestColor, /* pGetNearestColor */
|
.dc_funcs.pD3DKMTSetVidPnSourceOwner = X11DRV_D3DKMTSetVidPnSourceOwner,
|
||||||
NULL, /* pGetOutlineTextMetrics */
|
.dc_funcs.wine_get_wgl_driver = X11DRV_wine_get_wgl_driver,
|
||||||
NULL, /* pGetPixel */
|
.dc_funcs.wine_get_vulkan_driver = X11DRV_wine_get_vulkan_driver,
|
||||||
X11DRV_GetSystemPaletteEntries, /* pGetSystemPaletteEntries */
|
.dc_funcs.priority = GDI_PRIORITY_GRAPHICS_DRV,
|
||||||
NULL, /* pGetTextCharsetInfo */
|
|
||||||
NULL, /* pGetTextExtentExPoint */
|
.pActivateKeyboardLayout = X11DRV_ActivateKeyboardLayout,
|
||||||
NULL, /* pGetTextExtentExPointI */
|
.pBeep = X11DRV_Beep,
|
||||||
NULL, /* pGetTextFace */
|
.pGetKeyNameText = X11DRV_GetKeyNameText,
|
||||||
NULL, /* pGetTextMetrics */
|
.pMapVirtualKeyEx = X11DRV_MapVirtualKeyEx,
|
||||||
X11DRV_GradientFill, /* pGradientFill */
|
.pToUnicodeEx = X11DRV_ToUnicodeEx,
|
||||||
NULL, /* pInvertRgn */
|
.pVkKeyScanEx = X11DRV_VkKeyScanEx,
|
||||||
X11DRV_LineTo, /* pLineTo */
|
.pDestroyCursorIcon = X11DRV_DestroyCursorIcon,
|
||||||
NULL, /* pMoveTo */
|
.pSetCursor = X11DRV_SetCursor,
|
||||||
X11DRV_PaintRgn, /* pPaintRgn */
|
.pGetCursorPos = X11DRV_GetCursorPos,
|
||||||
X11DRV_PatBlt, /* pPatBlt */
|
.pSetCursorPos = X11DRV_SetCursorPos,
|
||||||
X11DRV_Pie, /* pPie */
|
.pClipCursor = X11DRV_ClipCursor,
|
||||||
NULL, /* pPolyBezier */
|
.pChangeDisplaySettingsEx = X11DRV_ChangeDisplaySettingsEx,
|
||||||
NULL, /* pPolyBezierTo */
|
.pEnumDisplaySettingsEx = X11DRV_EnumDisplaySettingsEx,
|
||||||
NULL, /* pPolyDraw */
|
.pCreateDesktopWindow = X11DRV_CreateDesktopWindow,
|
||||||
X11DRV_PolyPolygon, /* pPolyPolygon */
|
.pCreateWindow = X11DRV_CreateWindow,
|
||||||
X11DRV_PolyPolyline, /* pPolyPolyline */
|
.pDestroyWindow = X11DRV_DestroyWindow,
|
||||||
NULL, /* pPolylineTo */
|
.pFlashWindowEx = X11DRV_FlashWindowEx,
|
||||||
X11DRV_PutImage, /* pPutImage */
|
.pGetDC = X11DRV_GetDC,
|
||||||
X11DRV_RealizeDefaultPalette, /* pRealizeDefaultPalette */
|
.pMsgWaitForMultipleObjectsEx = X11DRV_MsgWaitForMultipleObjectsEx,
|
||||||
X11DRV_RealizePalette, /* pRealizePalette */
|
.pReleaseDC = X11DRV_ReleaseDC,
|
||||||
X11DRV_Rectangle, /* pRectangle */
|
.pScrollDC = X11DRV_ScrollDC,
|
||||||
NULL, /* pResetDC */
|
.pSetCapture = X11DRV_SetCapture,
|
||||||
X11DRV_RoundRect, /* pRoundRect */
|
.pSetFocus = X11DRV_SetFocus,
|
||||||
NULL, /* pSelectBitmap */
|
.pSetLayeredWindowAttributes = X11DRV_SetLayeredWindowAttributes,
|
||||||
X11DRV_SelectBrush, /* pSelectBrush */
|
.pSetParent = X11DRV_SetParent,
|
||||||
X11DRV_SelectFont, /* pSelectFont */
|
.pSetWindowIcon = X11DRV_SetWindowIcon,
|
||||||
X11DRV_SelectPen, /* pSelectPen */
|
.pSetWindowRgn = X11DRV_SetWindowRgn,
|
||||||
NULL, /* pSetBkColor */
|
.pSetWindowStyle = X11DRV_SetWindowStyle,
|
||||||
X11DRV_SetBoundsRect, /* pSetBoundsRect */
|
.pSetWindowText = X11DRV_SetWindowText,
|
||||||
X11DRV_SetDCBrushColor, /* pSetDCBrushColor */
|
.pShowWindow = X11DRV_ShowWindow,
|
||||||
X11DRV_SetDCPenColor, /* pSetDCPenColor */
|
.pSysCommand = X11DRV_SysCommand,
|
||||||
NULL, /* pSetDIBitsToDevice */
|
.pUpdateClipboard = X11DRV_UpdateClipboard,
|
||||||
X11DRV_SetDeviceClipping, /* pSetDeviceClipping */
|
.pUpdateLayeredWindow = X11DRV_UpdateLayeredWindow,
|
||||||
X11DRV_SetDeviceGammaRamp, /* pSetDeviceGammaRamp */
|
.pWindowMessage = X11DRV_WindowMessage,
|
||||||
X11DRV_SetPixel, /* pSetPixel */
|
.pWindowPosChanging = X11DRV_WindowPosChanging,
|
||||||
NULL, /* pSetTextColor */
|
.pWindowPosChanged = X11DRV_WindowPosChanged,
|
||||||
NULL, /* pStartDoc */
|
.pSystemParametersInfo = X11DRV_SystemParametersInfo,
|
||||||
NULL, /* pStartPage */
|
.pThreadDetach = X11DRV_ThreadDetach,
|
||||||
X11DRV_StretchBlt, /* pStretchBlt */
|
|
||||||
NULL, /* pStretchDIBits */
|
|
||||||
X11DRV_StrokeAndFillPath, /* pStrokeAndFillPath */
|
|
||||||
X11DRV_StrokePath, /* pStrokePath */
|
|
||||||
X11DRV_UnrealizePalette, /* pUnrealizePalette */
|
|
||||||
X11DRV_D3DKMTCheckVidPnExclusiveOwnership, /* pD3DKMTCheckVidPnExclusiveOwnership */
|
|
||||||
X11DRV_D3DKMTSetVidPnSourceOwner, /* pD3DKMTSetVidPnSourceOwner */
|
|
||||||
X11DRV_wine_get_wgl_driver, /* wine_get_wgl_driver */
|
|
||||||
X11DRV_wine_get_vulkan_driver, /* wine_get_vulkan_driver */
|
|
||||||
GDI_PRIORITY_GRAPHICS_DRV /* priority */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void init_user_driver(void)
|
||||||
|
{
|
||||||
|
__wine_set_user_driver( &x11drv_funcs, WINE_GDI_DRIVER_VERSION );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* X11DRV_get_gdi_driver
|
* X11DRV_get_gdi_driver
|
||||||
*/
|
*/
|
||||||
|
@ -449,5 +445,5 @@ const struct gdi_dc_funcs * CDECL X11DRV_get_gdi_driver( unsigned int version )
|
||||||
ERR( "version mismatch, gdi32 wants %u but winex11 has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
ERR( "version mismatch, gdi32 wants %u but winex11 has %u\n", version, WINE_GDI_DRIVER_VERSION );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
return &x11drv_funcs;
|
return &x11drv_funcs.dc_funcs;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,47 +2,6 @@
|
||||||
|
|
||||||
@ cdecl wine_get_gdi_driver(long) X11DRV_get_gdi_driver
|
@ cdecl wine_get_gdi_driver(long) X11DRV_get_gdi_driver
|
||||||
|
|
||||||
# USER driver
|
|
||||||
|
|
||||||
@ cdecl ActivateKeyboardLayout(long long) X11DRV_ActivateKeyboardLayout
|
|
||||||
@ cdecl Beep() X11DRV_Beep
|
|
||||||
@ cdecl GetKeyNameText(long ptr long) X11DRV_GetKeyNameText
|
|
||||||
@ cdecl MapVirtualKeyEx(long long long) X11DRV_MapVirtualKeyEx
|
|
||||||
@ cdecl ToUnicodeEx(long long ptr ptr long long long) X11DRV_ToUnicodeEx
|
|
||||||
@ cdecl VkKeyScanEx(long long) X11DRV_VkKeyScanEx
|
|
||||||
@ cdecl DestroyCursorIcon(long) X11DRV_DestroyCursorIcon
|
|
||||||
@ cdecl SetCursor(long) X11DRV_SetCursor
|
|
||||||
@ cdecl GetCursorPos(ptr) X11DRV_GetCursorPos
|
|
||||||
@ cdecl SetCursorPos(long long) X11DRV_SetCursorPos
|
|
||||||
@ cdecl ClipCursor(ptr) X11DRV_ClipCursor
|
|
||||||
@ cdecl ChangeDisplaySettingsEx(ptr ptr long long long) X11DRV_ChangeDisplaySettingsEx
|
|
||||||
@ cdecl EnumDisplaySettingsEx(ptr long ptr long) X11DRV_EnumDisplaySettingsEx
|
|
||||||
@ cdecl CreateDesktopWindow(long) X11DRV_CreateDesktopWindow
|
|
||||||
@ cdecl CreateWindow(long) X11DRV_CreateWindow
|
|
||||||
@ cdecl DestroyWindow(long) X11DRV_DestroyWindow
|
|
||||||
@ cdecl FlashWindowEx(ptr) X11DRV_FlashWindowEx
|
|
||||||
@ cdecl GetDC(long long long ptr ptr long) X11DRV_GetDC
|
|
||||||
@ cdecl MsgWaitForMultipleObjectsEx(long ptr long long long) X11DRV_MsgWaitForMultipleObjectsEx
|
|
||||||
@ cdecl ReleaseDC(long long) X11DRV_ReleaseDC
|
|
||||||
@ cdecl ScrollDC(long long long long) X11DRV_ScrollDC
|
|
||||||
@ cdecl SetCapture(long long) X11DRV_SetCapture
|
|
||||||
@ cdecl SetFocus(long) X11DRV_SetFocus
|
|
||||||
@ cdecl SetLayeredWindowAttributes(long long long long) X11DRV_SetLayeredWindowAttributes
|
|
||||||
@ cdecl SetParent(long long long) X11DRV_SetParent
|
|
||||||
@ cdecl SetWindowIcon(long long long) X11DRV_SetWindowIcon
|
|
||||||
@ cdecl SetWindowRgn(long long long) X11DRV_SetWindowRgn
|
|
||||||
@ cdecl SetWindowStyle(ptr long ptr) X11DRV_SetWindowStyle
|
|
||||||
@ cdecl SetWindowText(long wstr) X11DRV_SetWindowText
|
|
||||||
@ cdecl ShowWindow(long long ptr long) X11DRV_ShowWindow
|
|
||||||
@ cdecl SysCommand(long long long) X11DRV_SysCommand
|
|
||||||
@ cdecl UpdateClipboard() X11DRV_UpdateClipboard
|
|
||||||
@ cdecl UpdateLayeredWindow(long ptr ptr) X11DRV_UpdateLayeredWindow
|
|
||||||
@ cdecl WindowMessage(long long long long) X11DRV_WindowMessage
|
|
||||||
@ cdecl WindowPosChanging(long long long ptr ptr ptr ptr) X11DRV_WindowPosChanging
|
|
||||||
@ cdecl WindowPosChanged(long long long ptr ptr ptr ptr ptr) X11DRV_WindowPosChanged
|
|
||||||
@ cdecl SystemParametersInfo(long long ptr long) X11DRV_SystemParametersInfo
|
|
||||||
@ cdecl ThreadDetach() X11DRV_ThreadDetach
|
|
||||||
|
|
||||||
# WinTab32
|
# WinTab32
|
||||||
@ cdecl AttachEventQueueToTablet(long) X11DRV_AttachEventQueueToTablet
|
@ cdecl AttachEventQueueToTablet(long) X11DRV_AttachEventQueueToTablet
|
||||||
@ cdecl GetCurrentPacket(ptr) X11DRV_GetCurrentPacket
|
@ cdecl GetCurrentPacket(ptr) X11DRV_GetCurrentPacket
|
||||||
|
|
|
@ -193,6 +193,55 @@ extern BOOL CDECL X11DRV_StrokeAndFillPath( PHYSDEV dev ) DECLSPEC_HIDDEN;
|
||||||
extern BOOL CDECL X11DRV_StrokePath( PHYSDEV dev ) DECLSPEC_HIDDEN;
|
extern BOOL CDECL X11DRV_StrokePath( PHYSDEV dev ) DECLSPEC_HIDDEN;
|
||||||
extern BOOL CDECL X11DRV_UnrealizePalette( HPALETTE hpal ) DECLSPEC_HIDDEN;
|
extern BOOL CDECL X11DRV_UnrealizePalette( HPALETTE hpal ) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
|
extern BOOL CDECL X11DRV_ActivateKeyboardLayout( HKL hkl, UINT flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_Beep(void) DECLSPEC_HIDDEN;
|
||||||
|
extern INT CDECL X11DRV_GetKeyNameText( LONG lparam, LPWSTR buffer, INT size ) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL X11DRV_MapVirtualKeyEx( UINT code, UINT map_type, HKL hkl ) DECLSPEC_HIDDEN;
|
||||||
|
extern INT CDECL X11DRV_ToUnicodeEx( UINT virtKey, UINT scanCode, const BYTE *lpKeyState,
|
||||||
|
LPWSTR bufW, int bufW_size, UINT flags, HKL hkl ) DECLSPEC_HIDDEN;
|
||||||
|
extern SHORT CDECL X11DRV_VkKeyScanEx( WCHAR wChar, HKL hkl ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_DestroyCursorIcon( HCURSOR handle ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetCursor( HCURSOR handle ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_SetCursorPos( INT x, INT y ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_GetCursorPos( LPPOINT pos ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_ClipCursor( LPCRECT clip ) DECLSPEC_HIDDEN;
|
||||||
|
extern LONG CDECL X11DRV_ChangeDisplaySettingsEx( LPCWSTR devname, LPDEVMODEW devmode,
|
||||||
|
HWND hwnd, DWORD flags, LPVOID lpvoid ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_EnumDisplaySettingsEx( LPCWSTR name, DWORD n, LPDEVMODEW devmode,
|
||||||
|
DWORD flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_CreateDesktopWindow( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_CreateWindow( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_DestroyWindow( HWND hwnd ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_FlashWindowEx( PFLASHWINFO pfinfo ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_GetDC( HDC hdc, HWND hwnd, HWND top, const RECT *win_rect,
|
||||||
|
const RECT *top_rect, DWORD flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_ReleaseDC( HWND hwnd, HDC hdc ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_ScrollDC( HDC hdc, INT dx, INT dy, HRGN update ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetCapture( HWND hwnd, UINT flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetLayeredWindowAttributes( HWND hwnd, COLORREF key, BYTE alpha,
|
||||||
|
DWORD flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetParent( HWND hwnd, HWND parent, HWND old_parent ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetWindowIcon( HWND hwnd, UINT type, HICON icon ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetWindowRgn( HWND hwnd, HRGN hrgn, BOOL redraw ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetWindowStyle( HWND hwnd, INT offset, STYLESTRUCT *style ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_SetWindowText( HWND hwnd, LPCWSTR text ) DECLSPEC_HIDDEN;
|
||||||
|
extern UINT CDECL X11DRV_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp ) DECLSPEC_HIDDEN;
|
||||||
|
extern LRESULT CDECL X11DRV_SysCommand( HWND hwnd, WPARAM wparam, LPARAM lparam ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_UpdateClipboard(void) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_UpdateLayeredWindow( HWND hwnd, const UPDATELAYEREDWINDOWINFO *info,
|
||||||
|
const RECT *window_rect ) DECLSPEC_HIDDEN;
|
||||||
|
extern LRESULT CDECL X11DRV_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_WindowPosChanging( HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *window_rect, const RECT *client_rect, RECT *visible_rect,
|
||||||
|
struct window_surface **surface ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags,
|
||||||
|
const RECT *rectWindow, const RECT *rectClient,
|
||||||
|
const RECT *visible_rect, const RECT *valid_rects,
|
||||||
|
struct window_surface *surface ) DECLSPEC_HIDDEN;
|
||||||
|
extern BOOL CDECL X11DRV_SystemParametersInfo( UINT action, UINT int_param, void *ptr_param,
|
||||||
|
UINT flags ) DECLSPEC_HIDDEN;
|
||||||
|
extern void CDECL X11DRV_ThreadDetach(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
/* X11 driver internal functions */
|
/* X11 driver internal functions */
|
||||||
|
|
||||||
extern void X11DRV_Xcursor_Init(void) DECLSPEC_HIDDEN;
|
extern void X11DRV_Xcursor_Init(void) DECLSPEC_HIDDEN;
|
||||||
|
@ -713,6 +762,7 @@ void X11DRV_Settings_Init(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
void X11DRV_XF86VM_Init(void) DECLSPEC_HIDDEN;
|
void X11DRV_XF86VM_Init(void) DECLSPEC_HIDDEN;
|
||||||
void X11DRV_XRandR_Init(void) DECLSPEC_HIDDEN;
|
void X11DRV_XRandR_Init(void) DECLSPEC_HIDDEN;
|
||||||
|
void init_user_driver(void) DECLSPEC_HIDDEN;
|
||||||
|
|
||||||
/* X11 display device handler. Used to initialize display device registry data */
|
/* X11 display device handler. Used to initialize display device registry data */
|
||||||
|
|
||||||
|
|
|
@ -632,6 +632,7 @@ static BOOL process_attach(void)
|
||||||
if (use_xim) use_xim = X11DRV_InitXIM( input_style );
|
if (use_xim) use_xim = X11DRV_InitXIM( input_style );
|
||||||
|
|
||||||
X11DRV_DisplayDevices_Init(FALSE);
|
X11DRV_DisplayDevices_Init(FALSE);
|
||||||
|
init_user_driver();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
|
|
||||||
#include "windef.h"
|
#include "windef.h"
|
||||||
#include "winbase.h"
|
#include "winbase.h"
|
||||||
#include "winuser.h"
|
|
||||||
#include "wingdi.h"
|
|
||||||
#include "winnls.h"
|
#include "winnls.h"
|
||||||
#include "winternl.h"
|
#include "winternl.h"
|
||||||
#include "x11drv.h"
|
#include "x11drv.h"
|
||||||
|
|
|
@ -289,6 +289,8 @@ struct user_driver_funcs
|
||||||
void (CDECL *pThreadDetach)(void);
|
void (CDECL *pThreadDetach)(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern void CDECL __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version );
|
||||||
|
|
||||||
/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
|
/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
|
||||||
|
|
||||||
#define DCHC_INVALIDVISRGN 0x0001
|
#define DCHC_INVALIDVISRGN 0x0001
|
||||||
|
|
Loading…
Reference in New Issue