我正在尝试在X11中为OpenGL游戏/内容创建鼠标包裹。我尝试的方法是隐藏光标(这一点我可以做得很好),将鼠标位置锁定在窗口中心,然后使用鼠标增量位置来检测移动。我无法找到任何锁定鼠标位置的方法,除了每帧都将其移回中心。在Windows中,可以使用ClipCursor()实现此功能,在OSX中,可以使用CGWarpMouseCursorPosition实现鼠标包裹。请问XLib库中是否存在类似的功能?
libSDL 几乎完全实现了这一点,这个库的源代码可能是你自己实现的一个很好的起点。或者,如果目标是跨平台全屏应用程序,则直接使用 SDL 可能会节省你在这里重新发明轮子。
对于 X11 的文件似乎是 src/video/x11/SDL_x11mouse.c,特别是实现了 X11_WarpWMCursor
。