我正在尝试在 X11 中为 openGL 游戏/内容创建一个鼠标包装。我尝试采用的方法是隐藏光标(我可以做得很好),将鼠标位置锁定在窗口的中心,然后使用鼠标增量位置来检测移动。但是我找不到任何方法来锁定鼠标位置,然后每帧都将其移回中心。
在 Windows 中,这可以使用 ClipCursor() 完成,在 OSX 中,鼠标环绕可以使用 CGWarpMouseCursorPosition 完成。 XLib 库中是否存在类似的东西?
最佳答案
libSDL几乎完全做到了这一点,它的源代码可能是您自己实现的一个很好的起点。或者,如果目标是跨平台全屏应用程序,那么直接使用 SDL 可能会避免您在这里重新发明轮子。
X11 的相关文件似乎是 src/video/x11/SDL_x11mouse.c ,特别是 X11_WarpWMCursor
的实现。
关于x11 - XLib 锁定鼠标位置(鼠标环绕),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4124446/