Управление камерой с помощью мыши
This commit is contained in:
parent
e64d62b56f
commit
4b43d0efad
22
src/main.cpp
22
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)
|
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))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue