gpt4 book ai didi

c++ - 在 LINUX 上获取设备输入(鼠标、键盘……)

转载 作者:IT王子 更新时间:2023-10-29 01:02:10 25 4
gpt4 key购买 nike

我正在构建跨平台游戏引擎,现在我专注于输入系统。

我写了一个抽象的输入系统,它向上传递消息并且由平台相关模块提供,在单独的线程中运行。

在 Windows 中,我创建了“仅消息”窗口,它提供输入带有来自 RAWINPUT 的消息(转换为独立平台)的系统。

现在我很难弄清楚如何在基于 unix 的系统上做类似的事情。有没有方便的方法从内核获取输入(keyup,keydown,mousemove ...)?或者不需要显示任何窗口的任何其他方式?

编辑

我不希望我的输入系统依赖于我的渲染器。渲染器应该只通知当应用程序焦点改变时输入...所以我希望输入系统在与渲染器不同的线程上运行。

最佳答案

通常跨平台输入是通过使用包装库来实现的——SDL是一个非常擅长的,当前版本甚至是 BSD 许可的。

使用包装器的优势如此之大,以至于即使是在 Windows 上使用自己的解决方案的 Windows 游戏在 Linux 上运行时也倾向于使用 SDL 作为包装器(这是创建 SDL 的最初原因)。

所以在最坏的情况下,您可以将您的库保留在 Windows 上,并使用 SDL 专门在 *nix 系统上实现。

关于c++ - 在 LINUX 上获取设备输入(鼠标、键盘……),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9064362/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com