Управление камерой с помощью мыши

This commit is contained in:
parent e64d62b56f
commit 4b43d0efad
1 changed files with 22 additions and 0 deletions

View File

@ -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) int main(void)
{ {
GLFWwindow* window; // Указатель на окно GLFW3 GLFWwindow* window; // Указатель на окно GLFW3
@ -147,6 +166,9 @@ int main(void)
glfwSwapInterval(1); // Вертикальная синхронизация glfwSwapInterval(1); // Вертикальная синхронизация
// Установка callback-функции для мыши и камеры
glfwSetCursorPosCallback(window, mouse_callback);
// Загрузка функций OpenGL с помощью GLAD // Загрузка функций OpenGL с помощью GLAD
if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
{ {