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

Forcing Opengl 2.0 and above in c++

本文关键字:高版本 版本 c++ Opengl      更新时间:2023-10-16

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

现在,作为当前任务的一部分,他要求我们摆脱OpenGl ES 2.0之前的所有内容。我们的代码库相当大,我想知道我是否可以将 OpenGL 设置为 2.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 等)函数提供此功能。

相关文章: