在 C 的 OpenGL 中检测鼠标点击

detect mouse clicks in OpenGL in C

有什么方法可以不使用 glutMouseFunc() 来检测鼠标点击位置吗?

我在网上找到的所有使用 glutMouseFunc() 获取鼠标点击的示例。但是,我不希望检测鼠标点击功能始终处于活动状态。我只想在用户在菜单中选择某个选项后才记录鼠标单击位置。确切地说,我想在用户在菜单中选择一个选项后记录 4 个鼠标单击位置。

我阅读了有关 glutMouseFunc() here 的文档。如果你想在不同的时间用 4 个不同的函数处理鼠标事件,你可以用 NULL 调用 glutMouseFunc,然后用另一个函数调用 glutMouseFunc。来自文档:

Passing NULL to glutMouseFunc disables the generation of mouse callbacks.

如果你想同时处理不同的鼠标事件,那么你必须编写一个函数来满足所有这些条件。

首先,OpenGL与鼠标回调无关。它是图形库。对于您的最终目标,基本上按照@Mikhail 的建议,您在 glutMouseFunc 中插入一个条件语句,因此,

void mouse_callback(){

if ( command_seleteced == true )
   store mouse position

}