我开始使用 GLFW 和 OpenGL 用 C(目前)编写程序。我的问题是,我如何知道我的程序将使用哪个版本的 OpenGL?我的笔记本电脑显示我的显卡支持 OpenGL 3.3。输入“glxinfo | grep -i opengl”返回:
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce 9600M GT/PCI/SSE2
OpenGL version string: 3.3.0 NVIDIA 285.05.09
OpenGL shading language version string: 3.30 NVIDIA via Cg compiler
OpenGL extensions:
那么OpenGL 3.3会自动被使用吗?
只需致电glGetString(GL_VERSION)
(当然,一旦上下文初始化)并输出结果(我想这实际上与 glxinfo 所做的相同):
printf("%s\n", glGetString(GL_VERSION));
您的程序应该自动使用您的硬件和驱动程序支持的最高版本,在您的情况下似乎是 3.3。但要为 OpenGL 3+ 创建核心配置文件上下文(已完全删除已弃用的功能),您必须采取特殊措施。但自版本 2.7 GLFW 开始,可以使用glfwOpenWindowHint
功能。但是,如果您不想明确禁止已弃用的功能,则可以使用 GLFW 默认上下文创建函数提供的上下文,这将支持您的硬件和驱动程序的最高版本。
但还要记住,要使用高于版本 1.1 的 OpenGL 功能,您需要检索相应的函数指针或使用为您处理此问题的库,例如GLEW http://glew.sourceforge.net/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)