为什么鼠标没有GLFW_REPEAT?

Why there is no GLFW_REPEAT for the mouse?

本文关键字:REPEAT GLFW 鼠标 为什么      更新时间:2023-10-16

按住鼠标按钮似乎很自然,但此功能仅用于关键事件。根据 glfw 文档:

#define GLFW_REPEAT 2

按住键直到重复。

但是按下和释放按钮,我们有解决键盘和鼠标输入的问题。

#define GLFW_PRESS 1

已按下键或鼠标按钮。

#define GLFW_RELEASE 0

已释放键或鼠标按钮。

我想知道是否有解决此问题的方法。此外,为什么鼠标忽略此功能。

问问自己,GLFW_REPEAT触发的频率是多少?正确答案是此频率取决于用户的设置。它正是您按住字符键时字符在任何应用程序的任何输入字段中出现的频率。因此,GLFW_REPEAT的唯一目的是在您的应用程序中实现打印,并使其看起来与机器上的所有其他应用程序保持一致。您绝对不应该使用GLFW_REPEAT来实现 WASD 控制和其他类似的东西。

为什么鼠标没有GLFW_REPEAT?因为可能没有具有重复鼠标输入概念的操作系统或桌面环境。如果需要,只需记住处理按下和释放事件时鼠标按钮的状态,并以所需的频率手动生成重复"事件"。如果您愿意,可以每帧执行一次,如果您有单独的输入线程,则甚至更快。