On Tue, Mar 22, 2022 at 07:31:49PM -0600, Elaine Lefler wrote:
Allow use of graphics tablets with applications that support them.
Update the existing wintab code for the sake of correctness and to reduce code duplication. Based on behavior observed from a Wacom Intuos tablet on Windows 10.
Signed-off-by: Elaine Lefler elaineclefler@gmail.com
This is an effort to get PaintTool SAI working on macOS. I've split up the macdrv changes to make them easier to read, but all three are needed for the app to work. I'm separately submitting ntdll changes which are useful but not strictly necessary.
Tablet support: SaiV2 works out of the box. Tested with Intuos tablet as well as Apple iPad in Sidecar mode. SaiV1 works in theory, but is 32-bit only and I don't know how to compile that on a modern Mac.
WTPACKET has been renamed to PACKET for consistency with Wacom's headers. Also, pktdef.h was included in Wine but never used, so it's been deleted. The X11 code remains functionally unchanged, except for TABLET_CopyPacketData incorrectly inserting values of SM_CXSCREEN and SM_CYSCREEN when the X11 driver was trying to report the correct values of SM_CXVIRTUALSCREEN and SM_CYVIRTUALSCREEN, so this should fix multimonitor support. The other changes to wintab32.dll are just for minor edge cases.
dlls/winemac.drv/Makefile.in | 6 +- dlls/winemac.drv/cocoa_wintab.h | 64 +++ dlls/winemac.drv/cocoa_wintab.m | 219 +++++++++++ dlls/winemac.drv/event.c | 3 + dlls/winemac.drv/macdrv.h | 1 + dlls/winemac.drv/macdrv_cocoa.h | 11 + dlls/winemac.drv/winemac.drv.spec | 6 + dlls/winemac.drv/wintab.c | 631 ++++++++++++++++++++++++++++++ dlls/winex11.drv/wintab.c | 242 +++++------- dlls/wintab32/context.c | 215 ++++++---- dlls/wintab32/wintab32.c | 18 +- dlls/wintab32/wintab_internal.h | 26 +- include/Makefile.in | 1 - include/pktdef.h | 248 ------------ include/wintab.h | 91 ++++- tools/winapi/win32.api | 2 +- 16 files changed, 1279 insertions(+), 505 deletions(-) create mode 100644 dlls/winemac.drv/cocoa_wintab.h create mode 100644 dlls/winemac.drv/cocoa_wintab.m create mode 100644 dlls/winemac.drv/wintab.c delete mode 100644 include/pktdef.h
Hi Elaine,
Thanks for the patches. Unfortunately at the moment this patch is too large to review properly. Could you try breaking it down into several smaller, self-contained patches?
Huw.