【问题标题】:XLib Lock Mouse position (Mouse wrap)XLib 锁定鼠标位置(鼠标环绕)
【发布时间】:2010-11-08 13:52:25
【问题描述】:

我正在尝试在 X11 中为 openGL 游戏/内容创建鼠标套。我试图采取的方法是隐藏光标(我可以做得很好),将鼠标位置锁定在窗口的中心,然后使用鼠标增量位置来检测移动。但是,我找不到任何方法来锁定鼠标位置,然后每帧将其移回中心。

在 Windows 中,这可以使用 ClipCursor() 来完成,而在 OSX 中,鼠标环绕可以使用 CGWarpMouseCursorPosition 来完成。 XLib 库中是否存在类似的东西?

【问题讨论】:

    标签: x11 xlib


    【解决方案1】:

    libSDL 几乎完全做到了这一点,它的源代码可能是您自己实现的一个很好的起点。或者,如果目标是跨平台全屏应用程序,那么直接使用 SDL 可能会节省您在此处重新发明轮子。

    X11 的相关文件似乎是src/video/x11/SDL_x11mouse.c,尤其是X11_WarpWMCursor 的实现。

    【讨论】:

    • 这段代码帮助了我。因为我想避免添加对 libSDL 的依赖,所以我最终做的是每次鼠标进入窗口边缘 5 个刻度内时,我使用 XWarpMouse 将其居中并忽略下一个鼠标移动事件。
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多