On 8/3/2012 10:33 AM, Florian Bösch wrote:
On Fri, Aug 3, 2012 at 7:21 PM, Charles Pritchard <ch...@jumis.com
<mailto:ch...@jumis.com>> wrote:
What kind of correlated events are you thinking of?
For instance most tablet drivers deliver X/Y events separately. If you
processed those individually, fast brushstrokes would become
staircases. To avoid that, developers filter the queue and whenever
the see an X event (which always arrives before the Y event) they wait
for the Y event before correlating them to a "X+Y" event.
I was not aware of that. My experience comes mostly from the Wacom
plugins which handle that work before delivering.
It seems like this is something the implementer should handle;
delivering the full event to the developer.
http://www.wacomeng.com/web/WebPluginReleaseNotes.htm#_Toc324315286
They've done some touch event work as well:
http://www.wacomeng.com/web/WebPluginTouchAPI.htm
Some of this was discussed as part of the Sensor API proposal. It
seems that work is being shuffled into a web intents mechanism.
I've not yet experimented with high volume/precision data over
postMessage.
No idea what the intents is, but usually the "intend" in processing
events is implemented by the developer who processes the events, so
other than his application code, no further complication is required.
We Intents is a mechanism for posting/grabbing data as well as discovery.
http://webintents.org/
In intents, you might have an <iframe> which then runs the <object>
attaching to Wacom's plugin.
All websites would simply trigger an intent, such as asking for pen
data; they would not need to worry about opening an iframe or object tag.
I've not gotten to it, but I'll get a demo posted one of these days.
Item 2 is fun stuff, but at present, only the touch API has touched
on the concept of multiple pointers.
This product line http://www.wacom.com/en/Products/Intuos.aspx is both
a multitouch surface and pen input (although not both at the same
time). http://www.wacom.com/en/Products/Intuos.aspx
I suspect however that the "not at the same time" aspect isn't a
hardware or even driver limitation, but rather results from the
compulsive need of applications/OSes to pretend touches and pens are
core pointers, and since there can't be two pointers... If a suitable
capture mode where implemented, I don't think simultaneous touches and
pen strokes would present a problem (and they'd certainly be fun to use).
I agree; but our event infrastructure for the web isn't quite ready for
two mouse pointers to run at the same time over a webpage.
It's something I'd like to see addressed.
Item 1 we can do that with pointer lock.
You do bring up a good point, if the web platform did
concurrent/multiple pointer devices, it'd be nice if it the
pointer lock API was aware of that situation.
As I understand it, the new release of Windows does have mature
support for multiple pointers. Support has been available for some
time.
The web platform is falling a bit behind in this area. Of course,
they haven't caught up with pen events yet and those have been
around for decades.
I suspect the affine transform is something that the author ought
to be processing from nice raw data.
They can use something like the CSSMatrix() object or other maths
to do transforms.
With a complex Canvas drawing surface, I've had to do about 3
levels of transforms anyway.
onmightypenevent(e) { coordsForNextStep =
myMatrix.transform(e.arbitraryX, e.arbitraryY); };
Correct, you can leave it up to the developer and just engage
pointerlock. However there's a snag with that.
- You need to have fullscreen to get pointerlock
- You might desire to get pointerlock on the drawing surface, but not
engage fullscreen
- You'll want to engage pointerlock for more direct interaction, yet
disengage it again for interaction with interface elements in the DOM.
Everytime you engage/disengage it there's dialog boxes and whatnot.
All good points.
-Charles