Управление камерой с помощью мыши
This commit is contained in:
parent
322cfb3020
commit
eb628ddd8a
22
src/main.cpp
22
src/main.cpp
@ -116,6 +116,25 @@ GLuint LoadShaders(const char *vertex_file, const char *fragment_file)
|
|||||||
|
|
||||||
Camera camera(800.0f/600.0f);
|
Camera camera(800.0f/600.0f);
|
||||||
|
|
||||||
|
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.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…
x
Reference in New Issue
Block a user