我可以混合OpenGL版本吗?

时间:2013-06-30 12:09:40

标签: opengl opengl-3

我将开始在我的应用程序中实现OpenGL 3。我目前正在使用OpenGL 1.1,但是如果我尝试更改代码但我想将一些绘图代码更改为更快的OpenGL版本,我想保留一些问题。如果我在OpenGL 1.1中执行类似绑定纹理的操作,我可以在OpenGL 3中绘制纹理吗?

2 个答案:

答案 0 :(得分:4)

混合OpenGL版本并不像以前那么容易。在OpenGL 3.0中,许多旧功能被标记为“已弃用”,并在3.1中被删除。但是,自Ope​​nGL 3.2以来,定义了两个配置文件:核心兼容性。 OpenGL上下文是针对这样的配置文件创建的。在兼容性配置文件 所有被弃用的(并且在核心配置文件中删除)的东西仍然是可用的,它也可以混合使用。您甚至可以将自定义顶点着色器与固定功能片段处理混合,反之亦然。

这里的问题是实现者实际上不提供对兼容性配置文件的支持并不是一件容易的事。在MacOS X上,仅核心配置文件支持OpenGL 3.x和4.x.

在您的具体示例中,绑定纹理将适用于所有情况,因为该功能在1.1到4.3的所有版本中都未经修改(并且很可能在不久的将来这样做)。但是,大多数绘图调用可能在较新的核心配置文件中不可用。

答案 1 :(得分:0)

Omg .. opengl 1.1是从1997年开始的!帮自己一个忙,摆脱固定功能管道的东西,适应OpenGL 4.x.但是,你可以试试     #version 420核心

着色器中的