2010-11-08 83 views
2

我想在OpenGL游戏/内容的X11中创建一个鼠标换行。我试图采取的方法是隐藏光标(我可以做得很好),将鼠标位置锁定在窗口中心,然后使用鼠标增量位置来检测移动。然而,我无法找到任何方法来锁定鼠标位置,然后每隔一帧继续移动到中心位置。XLib锁定鼠标位置(鼠标换行)

在windows中,可以使用ClipCursor()完成,并且可以使用CGWarpMouseCursorPosition完成OSX鼠标换行。在XLib库中是否存在类似的东西?

回答

1

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

X11的问题文件似乎是src/video/x11/SDL_x11mouse.c,特别是X11_WarpWMCursor的执行情况。

+0

此代码帮助我。因为我想避免增加对libSDL的依赖性,我最终所做的每次鼠标都在窗口边缘的5个刻度内,我用XWarpMouse居中并忽略下一个鼠标移动事件。 – Kulidan 2010-11-08 23:57:57