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版
1条答案
按热度按时间cyej8jka1#
正如GLFW文档所述,只有当光标放在GLFW窗口内时,GLFW才会检测到鼠标移动。
“此函数用于设置指定窗口的光标位置回调,该回调在移动光标时调用”。
..指定窗口的..除非您使用的是Mac