[PATCH resend 0/9] Implement DInput8 mouse using RawInput and XInput2.

Rémi Bernon rbernon at codeweavers.com
Mon Nov 4 06:17:19 CST 2019


This is a rebase/resend of:

  https://www.winehq.org/pipermail/wine-devel/2019-September/151347.html

It should fix several issues related to mouse cursor position sometimes
jumping around in some games as well as improving the performance with
high polling rate mouses by avoiding a rountrip to the server in the
dinput8 implementation.

The first patches are in common with the HID rawinput implementation
patches that have been previously sent here:

https://www.winehq.org/pipermail/wine-devel/2019-October/152735.html

Rémi Bernon (9):
  server: Add send_hardware_message flags for rawinput translation.
  server: Implement rawinput hardware message broadcast.
  user32: Add __wine_send_input flags to hint raw input translation.
  user32: Add support for RIDEV_INPUTSINK flag in
    RegisterRawInputDevices.
  user32: Implement GetRegisteredRawInputDevices.
  dinput8: Add support for dinput devices that use raw input interface.
  dinput8: Use raw input interface for dinput8 mouse device.
  winex11.drv: Advertise XInput2 version 2.1 support.
  winex11.drv: Listen to RawMotion and RawButton* events in the desktop
    thread.

 dlls/dinput/device_private.h    |   3 +
 dlls/dinput/dinput_main.c       |  84 +++++++++++++++++++-
 dlls/dinput/mouse.c             | 117 ++++++++++++++++++++++++++-
 dlls/dinput8/tests/device.c     |  23 +-----
 dlls/user32/input.c             |   4 +-
 dlls/user32/rawinput.c          |  64 ++++++++++++++-
 dlls/user32/tests/rawinput.c    |   2 -
 dlls/user32/user32.spec         |   2 +-
 dlls/wineandroid.drv/keyboard.c |   2 +-
 dlls/wineandroid.drv/window.c   |   4 +-
 dlls/winemac.drv/ime.c          |   4 +-
 dlls/winemac.drv/keyboard.c     |   2 +-
 dlls/winemac.drv/mouse.c        |   2 +-
 dlls/winex11.drv/event.c        |  10 ++-
 dlls/winex11.drv/keyboard.c     |   2 +-
 dlls/winex11.drv/mouse.c        | 128 +++++++++++++++++-------------
 dlls/winex11.drv/x11drv.h       |   6 +-
 dlls/winex11.drv/x11drv_main.c  |   4 +
 include/winuser.h               |   2 +-
 server/protocol.def             |   9 +++
 server/queue.c                  | 135 ++++++++++++++++++++++++++------
 21 files changed, 489 insertions(+), 120 deletions(-)

--
2.24.0.rc2




More information about the wine-devel mailing list