2
我对OpenGL相当陌生,并且已经使用GLFW和GLEW结合来创建和显示OpenGL上下文。以下代码片段显示了我如何创建一个窗口并将其用于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
函数时,它会以某种方式在我的进程内的某个位置存储该上下文以供将来使用,但没有文档显示这一点。
基本上所有的OpenGL函数都是指针; glew'初始化'这些指针,使它们像函数一样行为,而实际上它们只是对已经加载到内存中的函数的引用。事情是,glew不是一个可行的API,因为它提供了一些额外的开销,并且不包含OpenGL中的所有内容。最好使用更多像“glbinding”一样的更新。 – Poriferous