我正在开发一个多平台 OpenGL 应用程序,为此我在 Linux 下使用 Xlib。我知道 Xlib 输入处理是基于事件的,但是我的程序已经做了自己的事件处理,我更希望能够轮询 xserver 以获取自上次轮询以来在活动窗口下按下或引发的任何键.
如果我必须在 X 下使用基于事件的输入处理,我必须对其他平台做同样的事情,同时重写大量代码,因为事件方法在一个平台与另一个平台之间是如此不同。轮询确实会为我简化事情,但我担心这样的事情会产生大量开销,而且我什至无法获得有关应该如何完成的信息。我曾想过直接检查 /dev/input/eventX 节点,但这可能会使事情变得更复杂,而不是简化。
我真正想知道的是如何有效地轮询 Linux 系统上的键盘状态。我是否在 Xlib 上浪费时间,我应该考虑其他技术或库吗?