Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对openGL版本感到困惑吗_C++_Opengl - Fatal编程技术网

C++ 对openGL版本感到困惑吗

C++ 对openGL版本感到困惑吗,c++,opengl,C++,Opengl,我更新了我的图形卡驱动程序以支持OpenGL4,这样像glBegin这样不推荐使用的函数就不能工作了。然而,当我运行一个简单的三角形程序时,glBegin仍然像以前一样工作。OpenGL4仍然支持glBegin,还是我在升级到OpenGL4时错过了一些步骤 “弃用”并不一定意味着“它将不起作用”,它意味着“你不应该使用它,因为标准这么说”,供应商可以自由地实现它想用硬件销售的东西;许多品牌仍然在自己的库中提供不推荐的OpenGL上下文和函数。仅使用支持OpenGL 4.x的驱动程序并不意味着您将

我更新了我的图形卡驱动程序以支持OpenGL4,这样像glBegin这样不推荐使用的函数就不能工作了。然而,当我运行一个简单的三角形程序时,glBegin仍然像以前一样工作。OpenGL4仍然支持glBegin,还是我在升级到OpenGL4时错过了一些步骤

“弃用”并不一定意味着“它将不起作用”,它意味着“你不应该使用它,因为标准这么说”,供应商可以自由地实现它想用硬件销售的东西;许多品牌仍然在自己的库中提供不推荐的OpenGL上下文和函数。

仅使用支持OpenGL 4.x的驱动程序并不意味着您将失去早期版本的功能。从OpenGL 3.2开始,引入了核心兼容性配置文件的概念,这就是现代配置文件和弃用配置文件之间的分离

Core配置文件中,您提到的
glBegin
等内容无效。但是,在兼容配置文件中,您可以继续将API中不推荐的部分与新部分混合匹配。绝大多数新的OpenGL功能不能保证与API中不推荐的部分一起工作,这在很大程度上是因为大多数新功能在某种程度上与GLSL和可编程管道相关

现在,当你讨论像MacOSX这样的平台时,事情变得有点复杂了。从OSX10.7开始,苹果开始支持OpenGL3.2。然而,他们设计实现的方式是,访问OpenGL 3.2功能的唯一方法是获得核心配置文件。它们继续支持传统的OpenGL 2.1实现,因此旧软件不必重新编写,但为了利用OS X上的任何OpenGL 3.2+功能,您必须使用所有不推荐的功能


事实上,平台的设计通常是为了让您在创建上下文的过程中实际需要做额外的工作,以便获得核心配置文件。除非您特别要求核心,否则您将获得兼容性(或者在OS X的情况下,是OpenGL 2.1的实现)。这是一种使现有软件的整个弃用模型尽可能轻松的方法