mypaint / mypaint

MyPaint is a simple drawing and painting program that works well with Wacom-style graphics tablets.
https://mypaint.app
GNU General Public License v2.0
2.68k stars 386 forks source link

Pointer registers pressure prior to moving #586

Open alexandre-mbm opened 8 years ago

alexandre-mbm commented 8 years ago

See this video please.


Pen: Dell (active) Notebook: Dell 7347 (synaptics) MyPaint: last version on Antergos


Images to eliminate doubts in the interpretation of the video:

vlcsnap-2016-01-31-02h58m06s625

vlcsnap-2016-01-31-02h58m42s002

The risks pointed with yellow should not exist! See the video please.

achadwick commented 8 years ago

@alexandre-mbm Please tell me how Help → About MyPaint describes the version exactly.

Is this behaviour new since any previous recent MyPaint (one with the black surrounds)?

What hardware are you using? Looks cool. Is the screen designed for a stylus? Please paste the outputs from:

$ lspci
$ lsusb
$ xinput list

and we'll see where those accidentals are coming from.

alandbm commented 8 years ago

MyPaint version: 1.2.0+gitexport.f62444e

$ lspci
00:00.0 Host bridge: Intel Corporation Broadwell-U Host Bridge -OPI (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U Integrated Graphics (rev 09)
00:03.0 Audio device: Intel Corporation Broadwell-U Audio Controller (rev 09)
00:04.0 Signal processing controller: Intel Corporation Broadwell-U Camarillo Device (rev 09)
00:14.0 USB controller: Intel Corporation Wildcat Point-LP USB xHCI Controller (rev 03)
00:16.0 Communication controller: Intel Corporation Wildcat Point-LP MEI Controller #1 (rev 03)
00:1b.0 Audio device: Intel Corporation Wildcat Point-LP High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 (rev e3)
00:1d.0 USB controller: Intel Corporation Wildcat Point-LP USB EHCI Controller (rev 03)
00:1f.0 ISA bridge: Intel Corporation Wildcat Point-LP LPC Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] (rev 03)
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
00:1f.6 Signal processing controller: Intel Corporation Wildcat Point-LP Thermal Management Controller (rev 03)
01:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)
$ lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 007: ID 0bda:0177 Realtek Semiconductor Corp. 
Bus 002 Device 006: ID 04f3:21d0 Elan Microelectronics Corp. 
Bus 002 Device 005: ID 8087:0a2a Intel Corp. 
Bus 002 Device 004: ID 0c45:64cb Microdia 
Bus 002 Device 003: ID 0483:91d1 STMicroelectronics Sensor Hub
Bus 002 Device 002: ID 046d:c534 Logitech, Inc. Unifying Receiver
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ xinput list 
⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=11   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen Pen                      id=13   [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=14   [slave  pointer  (2)]
⎜   ↳ DLL0675:00 06CB:75DB UNKNOWN              id=15   [slave  pointer  (2)]
⎣ Virtual core keyboard                       id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard                 id=5    [slave  keyboard (3)]
    ↳ Power Button                                id=6    [slave  keyboard (3)]
    ↳ Video Bus                                   id=7    [slave  keyboard (3)]
    ↳ Power Button                                id=8    [slave  keyboard (3)]
    ↳ Sleep Button                                id=9    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                       id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                        id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard                id=16   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                            id=17   [slave  keyboard (3)]
    ↳ Logitech USB Receiver                       id=18   [slave  keyboard (3)]

The hardware is a hybrid laptop like that: https://www.youtube.com/watch?v=d_JLI-djMt0, with Dell Active Pen. By the way, this special edition from the video isn't selled in Brazil. The built-in device (like a Samsung Galaxy Note Pro and S Pen) is a Synaptics, less compatible than Wacom or N-TRIG.

alexandre-mbm commented 8 years ago

@achadwick: @alandbm is my brother, designer, device user and owner.

achadwick commented 8 years ago

I can no longer see the video.

alexandre-mbm commented 8 years ago

Now you can download it. The link is at header.

achadwick commented 8 years ago

Must've been a temporary glitch in Google Drive. I can see the video now.

sample image

or in text

BUTTON_PRESS MOTION_NOTIFY MOTION_NOTIFY [...] MOTION_NOTIFY BUTTON_RELEASE

alexandre-mbm commented 8 years ago
  1. Yes.
  2. Answer soon, by @alandbm.
achadwick commented 8 years ago

It is odd that this glitch is not happening every time.

It seems that the final event received before a "glitched" gap has a bit of pressure. When the stylus touches the screen again, it's moved away and the brush engine has to make a sudden jag to catch up.

Clearly there are no motion events in the gap, which is why I asked about the cursor. If MyPaint was seeing any, it would be getting continuous position updates.

When MyPaint sees a BUTTON_RELEASE event, it simulates a zero-pressure motion event to tail things off nice and cleanly. It's a way of avoiding errors like the ones you're seeing on certain hardware that's similar to yours. Resistive touchscreens on Nokia internet tablets were an early example. It does something similar for BUTTON_PRESS.

alandbm commented 8 years ago

We think be easer making another video.

achadwick commented 7 years ago

@alandbm @alexandre-mbm MyPaint v1.2.1 was released recently. Please can you test it out, and let us know whether this problem is still happening? Thanks.

lanwatch commented 7 years ago

I believe I have the same issue. Just tried the latest release (1.2.1), it is still happening.

I tried to debug with Help → Test Input Devices and I always see pairs of press/release, when the glitch happens and when it doesn't. Rather weird.