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文件状态
“此函数设置指定窗口的游标位置回调,当游标被移动时调用该回调”。
发布于 2021-10-25 14:10:09
GLFW只在光标放置在GLFW窗口内时才会检测到鼠标的移动,正如您所说的,GLFW文档说明了这一点。
“此函数设置指定窗口的游标位置回调,当游标被移动时调用该回调”。
..Of指定的窗口。除非你在用Mac
https://stackoverflow.com/questions/56227408
复制相似问题