在我的新项目中,我想使用 OpenGL 版本 3/4,但我没有找到任何关于我必须使用哪些库或头文件的参考资料。
我查看了官方的 OpenGL 主页,但在那里我找不到任何库。我必须在哪里下载新版本的 OpenGL?
在我的新项目中,我想使用 OpenGL 版本 3/4,但我没有找到任何关于我必须使用哪些库或头文件的参考资料。
我查看了官方的 OpenGL 主页,但在那里我找不到任何库。我必须在哪里下载新版本的 OpenGL?
正如 Pubby 在他的评论中所说,您仍然使用 OpenGL 库。但是您可能应该使用可以在http://www.opengl.org/registry/找到的库头文件,并且您必须以不同的方式创建上下文。例如,使用GLFW,我会执行以下操作:
GLenum init_window(int w, int h)
{
int major, minor, rev;
GLenum glewResult;
if (glfwInit() != GL_TRUE) {
fprintf(stderr, "error: could not init GLFW\n");
return GL_FALSE;
}
glfwGetVersion(&major, &minor, &rev);
printf("GLFW %d.%d.%d\n", major, minor, rev);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 4);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
if (!glfwOpenWindow(w, h, 0,0,0,0, 24,0, GLFW_WINDOW)) {
fprintf(stderr, "Could not open window\n");
glfwTerminate();
return GL_FALSE;
}
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "Context: OpenGL %d.%d.%d\n", major, minor, rev);
glewExperimental = GL_TRUE;
glewResult = glewInit();
if (glewResult != GLEW_OK) {
fprintf(stderr, "error: could not init GLEW\n");
fprintf(stderr, "error: %s\n", glewGetErrorString(glewResult));
glfwTerminate();
return GL_FALSE;
}
return GL_TRUE;
}
我希望这会有所帮助!
OpenGL 是由 GPU 供应商实现的库。如果你有一个不错的 GPU,那么你可能有 OpenGL 3 或 4。在 Windows 上,默认情况下只有 OpenGL 1.1,但供应商使用扩展实现“完整”的 OpenGL。一般来说,您应该使用一些帮助库来获取这些扩展(或编写您自己的代码:))
如果你想使用“现代”OpenGL。至少尝试使用 OpenGL 3.3 的核心功能。
信息的重要来源:http ://www.opengl.org/wiki/Main_Page
书籍: http: //www.starstonesoftware.com/OpenGL/