On 12/13/2010 09:41 PM, Kristian Høgsberg wrote:
2010/12/9 Thomas Hellstrom<thellst...@vmware.com>:
Kristian, Others,

On 12/09/2010 08:36 PM, Kristian Høgsberg wrote:
I'm interested in how Wayland deals with input&    about mouse coordinates.

Currently Blender can fake off screen mouse coordinates on X11 by
hiding the cursor warping the position.
However it would be a lot nicer if the Wayland functions were able to
do this. (I heard this is possible on the OSX).

Are there any docs on how to grab the mouse cursor, warp the cursor
and is there anything like raw events which can be used for low level
interface functions?

There are no docs, but we've discussed similar requirements before:


http://lists.freedesktop.org/archives/wayland-devel/2010-November/000117.html

The idea is what I call "application pointer" in that email.  The idea
is that the compositor hides the cursor and just sends relative motion
events.  The application is then responsible for updating cursor
position, including pointer acceleration etc, or just not draw a
cursor but spin a cube, rotate the viewport or control a game.  Now
one thing I'd like to do different from X is that this mode isn't
going to be an open ended grab.  The compositor is going to be in
control and will be able to override it and switch to different
applications.  I'm thinking that this input mode is only available
when the application is fullscreen or optionally while a mouse button
is pressed.  Maybe also while the application has keyboard focus.

Kristian

At VMware, we've started investigating what it would take to support
Wayland, both on the host side (workstation / player) and on the guest side.

For the guest side, it doesn't seem to be too much work except we'd at some
point need full GL, and we perhaps need to find a way to optimize
pageflipping when we can't do it on real hardware.

The tricky thing is the host side. I have a fairly elaborate list of
features, in particular including cursor warping and open-ended grabs that
we, according to the input people, can't work around and that are used on
all hosted systems, like Window, Mac and X11.

So my question is basically, is there a chance for some flexibility here for
very demanding applications?
Hi Thomas,

We've talked about cursor grabs and warping before on the list as
something games also want to do.  It turns out that typically what
they really want is to draw their own cursor or no cursor at all, keep
the cursor inside the window and receive relative events.  As far as I
know, when the vmware host is running under linux, it runs in much the
same mode.  Grabbing the cursor and continuously warping it into the
window center is just how that is implemented.

I'd like to support most of what application do under X, but maybe not
exactly the way it works under X.  For the grab and warp case, I want
to restrict this behaviour to when the application is active (has
keyboard focus).  The compositor can always switch to a different
application or the user can alt-tab (or whichever key the compositor
uses) away from the application.  The way it will work is that the
compositor stops moving the mouse cursor automatically, sends relative
mouse events to the application, and the application can then maintain
the cursor speed and position and place the cursor relative to its
surface, or just hide it.

This should work well for games, for nested Wayland or X servers or
similar fullscreen experiences like the vmware host, qemu, vnc etc.
Will that work for the case where you're currently using grabs and
cursor warping?

Kristian

Hi, Kristian!

Thanks for the answer. I'm not the input expert so I'll discuss with them and see what might be missing.

Thanks,
Thomas



_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to