如果在加载场景时移动鼠标光标不会消失 - OpenGL和GLFW

时间:2018-04-10 12:44:02

标签: opengl mouse glfw

我正在设计一款带有OpenGL 4.1,Xcode和GLFW的玩具游戏引擎。我注意到如果我在加载场景时移动鼠标,尽管有调用,鼠标光标也不会消失

glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);

游戏运行正常,但光标仍然可见。

我在加载场景之后尝试放入glfwSetInputMode()调用,就在进入游戏循环之前,但它没有帮助。此外,启用光标并再次禁用它不会影响它在屏幕上的存在。我该如何解决这个问题?感谢。

2 个答案:

答案 0 :(得分:1)

Cursor不是OpenGL功能,这是底层操作系统图形系统功能。 GLFW库为您提供跨平台系统API包装器。

根据GLWF API:

  
    

GLFW_CURSOR_HIDDEN使光标在窗口的客户区域上方不可见,但不会限制光标离开。

  

  
    

GLFW_CURSOR_DISABLED隐藏并抓取光标,提供虚拟和无限制的光标移动。这对于实现例如3D相机控件是有用的。

  

所以GLFW_CURSOR_DISABLED在全屏模式下非常有用,因为GLFW_CURSOR_HIDDEN在窗口模式下非常有用。

答案 1 :(得分:0)

我刚刚遇到了同样的问题,我设法找到了适合我的解决方案。经过多次摸索,我发现只要在禁用光标之前确保至少调用一次 glfwPollEvents() 就可以了。希望这对某人有所帮助。