Creating OpenGL 4.3 window fails with GLFW3

c++, glfw, opengl

Solution

This is pretty simple:

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); // Major = 4
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // Major was 4, now it is 3.

// Minor = ???   [Something < 2]

You need to use `glfwWindowHint (GLFW_CONTEXT_VERSION_MINOR, 3);` instead for the second hint.

Problem

I set up a minimal application to open a blank window with GLFW3: ``` #include <iostream> #include <GL/glew.h> #include <GLFW/glfw3.h> void glfwErrorCallback(int error, const char *description) { std::cerr << "GLFW error " << error << ": " << description << std::endl; } int main(int argc, char **argv) { GLFWwindow* window; glfwSetErrorCallback(glfwErrorCallback); if(!glfwInit()) { std::cerr << "Failed to initialize GLFW...\n"; return -1; } glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); window = glfwCreateWindow(1024, 768, "GLFW window", NULL, NULL); if(!window) { std::cerr << "Failed to open GLFW window...\n"; glfwTerminate(); return -1; } glewExperimental = GL_TRUE; if (glewInit()) { std::cerr << "Failed to initialize GLEW...\n"; glfwTerminate(); return -1; } glfwMakeContextCurrent(window); while (glfwGetKey(window, GLFW_KEY_ESCAPE) != GLFW_PRESS && !glfwWindowShouldClose(window)) { glfwSwapBuffers(window); glfwPollEvents(); } glfwTerminate(); return 0; } ``` It results in the following error: GLFW error 65540: Context profiles only exist for OpenGL version 3.2 and above Failed to open GLFW window... The application is run on Linux with Bumblebee's `optirun`. The code works when using freeglut instead of GLFW. What is wrong with the code that results in the error?

Original source