Настройка OpenGL-проекта в Visual Studio 2022

Это пошаговая инструкция поможет вам быстро и просто настроить проект для разработки приложений с использованием OpenGL и библиотек GLFW, GLAD и GLM в Visual Studio 2022.

Шаг 1: Установка необходимых библиотек

GLFW

Перейдите на официальный сайт GLFW и скачайте архив с бинарными файлами для Windows. Например, glfw-3.4.bin.WIN64.zip.

Распакуйте архив в удобное место, например:

C:\Users\Vladimir\Libraries\glfw-3.4.bin.WIN64

GLAD

Вместо GLEW будем использовать современный и удобный загрузчик OpenGL-функций GLAD:

  1. Откройте онлайн-генератор GLAD по ссылке: https://glad.dav1d.de.
  2. Выберите следующие настройки:
    • Language: C/C++
    • Specification: OpenGL
    • API: gl версии 3.3
    • Profile: Core
    • Generate a loader: поставьте галочку
  3. Нажмите кнопку Generate и скачайте полученный zip-архив.

Распакуйте содержимое архива в вашу папку с библиотеками:

C:\Users\Vladimir\Libraries\glad

GLM

Библиотеку GLM для математических операций скачайте с GitHub: glm-1.0.1-light.7z.

Распакуйте её в ту же папку:

C:\Users\Vladimir\Libraries\glm

Шаг 2: Создание проекта в Visual Studio 2022

Запустите Visual Studio и создайте новый пустой C++ проект:

Create a new project → C++ Empty Project

Назовите его, например, OpenGLProject.

Шаг 3: Настройка свойств проекта

Откройте настройки проекта (Project → Properties) и убедитесь, что выбрана конфигурация для всех типов сборок (Configuration: All Configurations).

Include Directories

В Configuration Properties → VC++ Directories → Include Directories добавьте пути:

C:\Users\Vladimir\Libraries\glfw-3.4.bin.WIN64\include;
C:\Users\Vladimir\Libraries\glad\include;
C:\Users\Vladimir\Libraries\glm;
$(IncludePath)

Library Directories

В Library Directories добавьте путь:

C:\Users\Vladimir\Libraries\glfw-3.4.bin.WIN64\lib-vc2022;
$(LibraryPath)

Linker → Input

В Configuration Properties → Linker → Input → Additional Dependencies добавьте:

glfw3.lib;opengl32.lib;%(AdditionalDependencies)

Теперь библиотека GLFW будет использовать статическую линковку, и файл glfw3.dll вам не понадобится.

Шаг 4: Добавление GLAD в проект

Добавьте исходный файл GLAD (glad.c) непосредственно в ваш проект:

Source Files → Add → Existing Item...
C:\Users\Vladimir\Libraries\glad\src\glad.c

Шаг 5: Пример минимального кода

Создайте файл main.cpp:

#include <iostream>
#include <glad/glad.h>
#include <GLFW/glfw3.h>

int main()
{
    if (!glfwInit())
    {
        std::cerr << "Failed to initialize GLFW\n";
        return -1;
    }

    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

    GLFWwindow* window = glfwCreateWindow(800, 600, "OpenGL Window", nullptr, nullptr);
    if (!window)
    {
        std::cerr << "Failed to create GLFW window\n";
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);

    if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress))
    {
        std::cerr << "Failed to initialize GLAD\n";
        glfwTerminate();
        return -1;
    }

    std::cout << "OpenGL version: " << glGetString(GL_VERSION) << std::endl;

    while (!glfwWindowShouldClose(window))
    {
        if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
            glfwSetWindowShouldClose(window, GLFW_TRUE);

        glClearColor(0.1f, 0.2f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);
        glfwSwapBuffers(window);
        glfwPollEvents();
    }

    glfwDestroyWindow(window);
    glfwTerminate();

    return 0;
}

Шаг 6: Сборка и запуск

Соберите проект:

Build → Build Solution (Ctrl+Shift+B)

Запустите проект:

Debug → Start Without Debugging (Ctrl+F5)

Если всё сделано правильно, вы увидите окно с установленным вами цветом.