在2.1上下文中使用OpenGL GLSL 3.3
我有一个旧的Nvidia显卡(Go GeForce 7400),我知道它只支持OpenGL 2.1。 即使我强制GLFW在此机器上创建3.3上下文,程序也会保证崩溃或返回NULL
窗口。 但是,我发现机器实际上可以在2.1环境下运行一些用GLSL 3.3版编写的简单着色器。 他们甚至有#version 330 core
版本声明。 令我惊奇的是,编译这些着色器时程序没有抱怨,并且一切似乎都奏效。
所以这就是我所做的:
据我的理解,GLSL 3.3只带有OpenGL 3.3+。 在此之前,OpenGL 2.1的GLSL版本实际上是1.20。 那么谁能告诉我发生了什么? 这是因为我的图形卡的驱动程序有``秘密''实现GLSL 3.3,但只支持OpenGL 2.1 API? 一般来说,找到这种奇怪的组合有什么机会? 我敢肯定,我不应该假设GLSL 3.3在2.1的上下文中工作,我应该吗?
顺便说一句,我认为我正在使用Linux Nvidia专有的驱动程序卡。
链接地址: http://www.djcxy.com/p/38521.html