Это функция обратного вызова glfwPollEvents () для курсора мыши и другой метод, который я использую для проверки того, насколько мой курсор перемещается между кадрами.
void Window::HandleMouse(GLFWwindow* window, double xpos, double ypos) {
Window* window_ptr = static_cast<Window*>(glfwGetWindowUserPointer(window));
if (window_ptr->mouse_first_moved) {
window_ptr->xlast = xpos;
window_ptr->ylast = ypos;
window_ptr->mouse_first_moved = false;
}
window_ptr->xchange = xpos - window_ptr->xlast;
window_ptr->ychange = window_ptr->ylast - ypos;
window_ptr->xlast = xpos;
window_ptr->ylast = ypos;
}
GLfloat Window::GetXChange() {
static GLfloat change_x;
change_x = xchange;
xchange = 0;
return change_x;
}
Эти значения возвращаются GetXChange при вызове в рендере.цикл во время «встряхивания» одной мыши (я перемещал его довольно быстро вправо и влево, пытаясь сохранить постоянную скорость движения).Что они имеют в виду, так это то, что моя мышь покрыта осью х между одним кадром и другим.
12.0
4.0
59.0
8.0
3.0
1.0
-1.0
-2.0
-46.0
-64.0
-61.0
-47.0
-21.0
Моим первым предположением было то, что моя частота кадров не стабильна, но после проверки я обнаружил, что это не так.t the case.
В чем может быть причина такого расхождения?