Проблема с GLFW_OPENGL_PROFILE. Открытие окна GLFW

Недавно начал изучать openGL. При создании окна с использованием GLFW возникла проблема. Есть код:

#define GLEW_STATIC
#include <iostream>
#include <glew.h>
#include <glfw3.h>
#include <glm.hpp>
#include <vec2.hpp>
#include <vec3.hpp>
#include <vec4.hpp>
#include <mat4x4.hpp>
#include <gtc\matrix_transform.hpp>
#include <gtc\type_ptr.hpp>
#include <SOIL2.h>

int main() {
    glfwInit();

    glfwWindowHint(GLFW_VERSION_MAJOR, 4);
    glfwWindowHint(GLFW_VERSION_MINOR, 4);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);

    const int WIDTH = 640, HEIGHT = 480;
    int framebufferWidth = 0, framebufferHeight = 0;
    GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "Test", NULL, NULL);
    if (window == NULL) {
        std::cout << "ERROR window" << std::endl;
        glfwTerminate();
        return -1;
    }

    glfwGetFramebufferSize(window, &framebufferWidth, &framebufferHeight);
    glViewport(0, 0, framebufferWidth, framebufferHeight);

    glfwMakeContextCurrent(window);

    glewExperimental = GL_TRUE;
    if (glewInit() != GLEW_OK) {
        std::cout << "ERROR glew" << std::endl;
        glfwTerminate();
        return -1;
    }

    while (!glfwWindowShouldClose(window)) {
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

При запуске в консоль выводится "ERROR window". Причина заключается в

glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

Если изменить GLFW_OPENGL_CORE_PROFILE на GLFW_OPENGL_ANY_PROFILE программа заработает. Хотел бы узнать, в чем заключается разница (знаю, что это связано с новой функциональностью openGL, но хочу узнать конкретно какие возможности я не смогу использовать) и если это возможно исправить эту проблему.


Ответы (0 шт):