Mit der GLFW internen Funktion
glfwSetCursorPosCallback(window, callback);
kannst du einen eigenen Callback registrieren. Der wird dann automatisch jedes mal aufgerufen wenn sich die Maus bewegt und ruft die von dir registrierte Callback Funktion auf. Dabei übergibt sie jedes mal die x/y Koordinaten.
#include <GLFW/glfw3.h>
#include <stdio.h>
void mouse_callback(GLFWwindow* window, double xpos, double ypos)
{
printf("Mausposition: (%f, %f)\n", xpos, ypos);
}
int main()
{
if (!glfwInit())
return -1;
GLFWwindow* window = glfwCreateWindow(800, 600, "Maus Beispiel", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
// Setze den Maus-Callback
glfwSetCursorPosCallback(window, mouse_callback);
while (!glfwWindowShouldClose(window))
{
// Handle events
glfwPollEvents();
}
glfwTerminate();
return 0;
}