- From: Rick Byers via GitHub <sysbot+gh@w3.org>
- Date: Thu, 09 Jul 2015 03:25:00 +0000
- To: public-pointer-events@w3.org
Interesting, thanks. For maximum smoothness we've found it valuable to [align input with vsync, using interpolated positions](https://docs.google.com/document/d/1L2JTgYMksmXgujKxxhyV45xL8jNhbCh60NQHoueKyS4/edit#heading=h.30fbj1j9p434). You can see this in practice on [this demo page](http://rbyers.github.io/event-timing.html). Without this even a 60hz touchscreen can trigger occasional jank when scrolling/dragging due to aliasing effects (as the phase drifts). But regardless, I agree this should be an implementation detail of the browser - the "JIT events" approach isn't necessarily wrong (it's still what we do on desktop actually). But then how does one write a reliably smooth pinch library on top of pointer events (say for manipulating a map)? With touch events I can just process each event and transform all at once. With PE I probably want to compute/apply my transform exactly once for all fingers, so I'll probably do it on RAF, right? I certainly don't want to let a frame be produced that includes the changes from one finger's movement without the changes from the other finger's movement (or I'll get a cyclic zoom-in/out pattern as the user drags with a constant distance between their fingers). In a "JIT events" browser users may see occasional jitter when one finger happens to come before the RAF and one after. But in a buffered-input browser, doing the work on RAF should be reliably smooth. @tdresser, you've got some tools somewhere for precisely measuring such jitter in finger separation, right? Perhaps we should extend them to use pointer events and see if we can quantify this two-finger vsync-boundary effect on some Windows devices? I suppose you could argue that any such library should always do some amount of smoothing. But that always comes at a cost of increased latency and a feeling of "squishyness", so I'm not sure I'd really recommend that. WDYT? -- GitHub Notif of comment by RByers See https://github.com/w3c/pointerevents/issues/9#issuecomment-119803413
Received on Thursday, 9 July 2015 03:25:03 UTC