diff --git a/src/main.cpp b/src/main.cpp index 24da569..75a9b19 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -114,6 +114,25 @@ GLuint LoadShaders(const char *vertex_file, const char *fragment_file) } +bool firstMouse = true; +float lastX, lastY; + +void mouse_callback(GLFWwindow* window, double xpos, double ypos) +{ + if (firstMouse) + { + lastX = xpos; + lastY = ypos; + firstMouse = false; + } + + glm::vec2 offset(xpos - lastX, lastY - ypos); + lastX = xpos; + lastY = ypos; + + Camera::current().rotate(offset); +} + int main(void) { GLFWwindow* window; // Указатель на окно GLFW3 @@ -147,6 +166,9 @@ int main(void) glfwSwapInterval(1); // Вертикальная синхронизация + // Установка callback-функции для мыши и камеры + glfwSetCursorPosCallback(window, mouse_callback); + // Загрузка функций OpenGL с помощью GLAD if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {