我正在开发一个多平台的OpenGL应用程序,为此我在Linux下使用Xlib。我明白Xlib输入处理是基于事件的强烈的,但我的程序已经做了自己的事件处理,而且我更愿意轮询xserver以查找自上次轮询以来在活动窗口下按下或提出的任何键。Xlib键盘轮询
如果我必须在X下使用基于事件的输入处理,那么在重写大量代码时,我必须对其他平台执行相同的操作,因为事件方法对于不同的平台而言是如此不同。轮询会真正为我简化一些事情,但是恐怕会有这样的事情发生,而且我还没有能够获得有关应该如何完成的信息。我想直接检查/ dev/input/eventX节点,但这可能会使事情更加复杂,而不是简化。
我真正想知道的是如何有效地轮询Linux系统上的键盘状态。我是否在Xlib上浪费时间,是否应该考虑其他技术或库?
“事件方法从一个平台到另一个平台是如此不同”......什么?我*相当*确定他们都基于“钥匙落下”和“钥匙出现”... –
我建议你调查SDL或SFML来抽象出这种事情。 – singpolyma
你甚至不能轮询/ dev/input/eventX,我的意思是这个名字本身已经表明它是基于事件的。 – datenwolf