XLib 锁定鼠标位置(鼠标包裹)

3
我正在尝试在X11中为OpenGL游戏/内容创建鼠标包裹。我尝试的方法是隐藏光标(这一点我可以做得很好),将鼠标位置锁定在窗口中心,然后使用鼠标增量位置来检测移动。我无法找到任何锁定鼠标位置的方法,除了每帧都将其移回中心。在Windows中,可以使用ClipCursor()实现此功能,在OSX中,可以使用CGWarpMouseCursorPosition实现鼠标包裹。请问XLib库中是否存在类似的功能?
1个回答

2

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

对于 X11 的文件似乎是 src/video/x11/SDL_x11mouse.c,特别是实现了 X11_WarpWMCursor


这段代码帮了我大忙。由于我想避免添加对libSDL的依赖,所以我最终做的是每当鼠标靠近窗口边缘5个滴答声时,我使用XWarpMouse将其居中,并忽略接下来的鼠标移动事件。 - Kulidan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接