在c ++中强制使用Opengl 2.0及更高版本

时间:2015-01-31 02:46:34

标签: c++ opengl

我是一名学习c ++和opengl的学生已经5个月了,我们已经触及了一些高级主题,从基本的opengl开始,如glBegin / glEnd,VA到VBO再到着色器等。我们的教授让我们积累了我们的图形引擎随着时间的推移形成了第一类,并且不时地要求我们停止使用一个或其他已弃用的功能并继续使用更新的版本。

现在作为当前任务的一部分,他要求我们在OpenGl ES 2.0之前摆脱一切。我们的代码库相当大,我想知道我是否可以将OpenGL设置为2.0及更高版本,以便在编译时实际使用这些已弃用的功能失败,以便我可以确保所有这些功能都不在我的引擎中。

1 个答案:

答案 0 :(得分:0)

初始化OpenGL上下文时,可以将提示传递给上下文以请求特定的上下文版本。例如,使用GLFW库:

glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);

GLFWwindow* window = glfwCreateWindow(res_width, res_height, window_name, monitor, NULL);

如果OpenGL库不支持ES 2.0,则会失败(在GLFW的情况下,它会返回NULL窗口)。您平台的本机EGL(或WGL,GLX,AGL等)功能提供此功能。