【发布时间】:2016-02-02 01:57:46
【问题描述】:
我是 OpenGL 的新手,一直在使用 GLFW 和 GLEW 来创建和显示 OpenGL 上下文。以下代码 sn-p 显示了我如何创建一个窗口并将其用于 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。