openGL之API学习(六十八)core profile、compatibility profile、forward compatibility

OpenGL从3.0版本开始引入废弃机制和模式概念,旨在摆脱历史负担并支持先进特性。Core Profile仅包含最新的Shader函数,而Compatibility Profile则兼容旧版固定管线。3.2版本后,Forward Compatibility标志意味着禁用所有标记为deprecated的函数,确保向未来兼容。这种变化为开发者提供了选择特定模式的灵活性,但也增加了学习和适配的难度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在OpenGL的发展历程中,总是兼顾向下兼容的特性,但是到了一定的程度之后,这些旧有的OpenGL API不再适应时代的需要,还有一些扩展并不是驱动一定要实现的扩展,这些被统一划入可选的Compatibility Profile;而由OpenGL规范规定必须支持的扩展,则是Core Profile,想要支持先进的OpenGL,相应的Core Profile扩展必须被实现。

OpenGL在渲染的时候需要一个Context,这个Context记录了OpenGL渲染需要的所有信息,可以把它理解成一个大的结构体,它里面记录了当前绘制使用的颜色、是否有光照计算以及开启的光源等非常多我们使用OpenGL函数调用设置的状态和状态属性。在OpenGL 3.0版本之前,OpenGL创建Context都是一致的,随着升级会新增一些内容(例如从OpenGL1.1升级到1.5,会新增一些状态变量或者属性,并添加一些设置这些内容的函数),整体上来说没有什么大的变化。但是从OpenGL 3.0开始,OpenGL为了摆脱历史的“包袱”,想要彻底的废弃掉之前的许多特性,但是无奈市面上已经有大量依赖OpenGL之前版本的代码,导致OpenGL维护小组的这一想法难以付诸实施,于是在OpenGL 3.1开始引入了OpenGL Context的一些分类,比如引入了CoreProfile等概念,之后随着版本发展到3.3,一切算是确定下来。

正是由于OpenGL的这一变化过程以及其间引入的各种概念,导致初学者学习OpenGL时非常的痛苦,本来OpenGL API对于一般开发者来说就是晦涩难懂,如今还引入这些内容真的是令开发者压力山大。

在OpenGL 3.0版本之前,所有的OpenGL Cont

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值