OpenGL上下文存储在哪里?

时间:2016-02-02 01:57:47

标签: c++ c opengl

我是OpenGL的新手,并且一直使用GLFW和GLEW来创建和显示OpenGL上下文。以下代码段显示了如何创建窗口并将其用于OpenGL。

GLFWwindow* window;

if (!glfwInit())
{
    return -1;
}

window = glfwCreateWindow(1280, 720, "Hello OpenGL", NULL, NULL);

if (!window)
{
    glfwTerminate();
    return -1;
}

glfwMakeContextCurrent(window);

GLenum err = glewInit();

if (err != GLEW_OK)
{
    glfwTerminate();
    return -1;
}

glewInit如何能够获取窗口/上下文并使用它进行初始化而无需自己传递任何其他参数?

我只能想象当我们调用glfwMakeContextCurrent函数时,它以某种方式将上下文存储在我的进程中的某个地方以供以后使用,但是没有文档显示这一点。

1 个答案:

答案 0 :(得分:3)

当前的OpenGL上下文是各种各样的全局(或更多点,thread_local)“变量”。所有OpenGL函数都会对当前线程中处于活动状态的任何上下文起作用。

这包括GLEW制作的OpenGL调用。