我正在构建跨平台游戏引擎,现在我专注于输入系统。我编写了一个抽象的输入系统,它将消息传递上去,并由运行在单独线程中的平台相关模块提供输入。
在Windows中,我创建了一个“仅消息”窗口,用于从RAWINPUT接收消息(转换为平台无关消息)并向输入系统提供输入。
现在,我正在努力找出如何在基于Unix的系统上执行类似的操作。有没有方便的获取内核输入(keyup、keydown、mousemove等)的方法?或者其他不需要显示任何窗口的方法?
编辑:我不希望我的输入系统依赖于渲染器。渲染器只应在应用程序焦点变化时通知输入...因此,我希望输入系统在不同的线程上运行。
在Windows中,我创建了一个“仅消息”窗口,用于从RAWINPUT接收消息(转换为平台无关消息)并向输入系统提供输入。
现在,我正在努力找出如何在基于Unix的系统上执行类似的操作。有没有方便的获取内核输入(keyup、keydown、mousemove等)的方法?或者其他不需要显示任何窗口的方法?
编辑:我不希望我的输入系统依赖于渲染器。渲染器只应在应用程序焦点变化时通知输入...因此,我希望输入系统在不同的线程上运行。