GLFW未检测到鼠标在GLFW窗口之外的移动

6ioyuze2  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(313)

glfwSetCursorPosCallback()仅在鼠标位于窗口内时运行,而不在窗口外运行。

今天早些时候,我让这个功能正常工作,没有任何问题,但在过去的几个小时里,我一直在试图发现这个问题。

static void cursorPositionCallback(GLFWwindow* window, double xpos, double ypos)
{
 std::cout << xpos << " : " << ypos << std::endl;
}

.......

 while (!glfw.WindowShouldClose())  
 {
     shader.ClearBuffers(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     glfw.ResizeWindow(MVP); 
     glfwSetCursorPosCallback(glfw.GetWindowID(), cursorPositionCallback);
     Cube_IBO.DrawElementsInstanced(CubeIndices.size(), 2);
     glfw.SwapBuffers(); 
 }

GLFW文档状态

“此函数用于设置指定窗口的光标位置回调,该回调在移动光标时调用”。

  • Windows 10
  • Visual Studio 16.0.4
  • GLFW 3.3版
cyej8jka

cyej8jka1#

正如GLFW文档所述,只有当光标放在GLFW窗口内时,GLFW才会检测到鼠标移动。
“此函数用于设置指定窗口的光标位置回调,该回调在移动光标时调用”。

..指定窗口的..除非您使用的是Mac

相关问题