This fix is aimed at the following issues:
- T60967: Grease Pencil pressure sensitivity issue with Adesso Cyber tablet T12
- T55589: Microsoft Surface pens does not send first events when moves
The new implementation uses WM_POINTERDOWN, WM_POINTERUP and WM_POINTERUPDATE and pointer API to process stylus events. It also changes how the pressure is reset when the Windows Ink implementation is enabled.
By processing the WM_POINTERDOWN, WM_POINTERUP and WM_POINTERUPDATE events this implementation this implementation should work on Windows 8, Windows 10 (using legacy pen interaction) and Windows 10 (using the new pen interaction), as Blender will not recieve the delays introduced by gesture recognition or whilst Windows changes the event into mouse WM_MOUSExxx or WM_xBUTTONxxx events.
The previous version reset the pressure to full when the pen left the screen, however for some hardware implementations this allowed a small window where Blender may process the final move event and read the pressure as full leaving a dot on the last event.
The destructor for GHOST_WindowWin32 also had the m_user32 being free'd off in two seperate locations. The updated implementation removes the redundant lines of code.