x11 - XLib 锁定鼠标位置(鼠标环绕)

标签 x11 xlib

我正在尝试在 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/

相关文章:

c - 通过它的 API(或扩展)识别一个分辨率在 X11 屏幕上是虚拟的

linux - 如果 "pure XCB"OpenGL 是不可能的,那么 xcb/glx.h 中的 XCB/GLX API 有什么用?

linux - Motif:如何在没有用户干预的情况下自动移动滚动条

c - 无法使用 XFreeColors() 释放 Xlib 中的颜色图条目

c++ - Linux 透明窗口

c - 带有预分配内存缓冲区的 XGetImage

linux - 在 Linux 上,如何在不同的登录名下从终端 shell 运行 GUI 应用程序?

python - Xlib 控制键盘事件

c - Xlib:绘制一个文本输入框并在输入时读取文本

c++ - 创建带有帧缓冲区的 xlib 窗口,我可以直接绘制并使用 XPutImage