OpenGL ES着色器语言规范 10 常见问题(34)

目录

10.34 提高最低要求


10.34 提高最低要求

自版本1.00发布以来,很明显所有实现都支持超过最低要求。一些实现远远超出了最小值。

最低要求不包括能够使用循环索引索引数组,这是一个非常有用的功能。

作为语言规范的一部分但超出最小值的特征应该如何暴露?

选择1:什么都不做。 应用程序可以通过尝试编译来测试特定功能的存在。 如果不支持,编译将失败。

这被认为是不令人满意的,因为没有动力让新设计支持可选功能。

选项2:定义扩展。 应用程序可以测试扩展,但缺少扩展并不一定意味着不支持这些功能。 如果需要公开多组可选功能,则扩展将是合适的。

选项3:定义新的语言版本,例如1.01。 着色器将被要求包含#version 101,并且编译失败将需要不支持扩展功能的编译器。即使版本指令支持扩展功能集,它也会导致现有编译器编译失败。

选项4:定义新的语言版本1.01,但着色器不需要包含#version 101.支持扩展功能集的编译器可能返回__VERSION__ = 101.不支持扩展功能集的编译器必须继续返回__VERSION__ = 100并且 #version 101必须失败。

这允许已支持1.01功能的现有实现继续支持1.01着色器,前提是着色器不声明#version 101。

选项5:定义新的语言版本,但仍称其为版本1.00。
通常,新功能无法添加到现有已发布的规范中。 但是,在这种情况下,功能已经是规范的一部分。 当前指定为可选的功能是强制性的。

A:选项5:将发布当前版本(版本1.00)的新修订版。

 

应放宽哪些最低要求?

选项1:仅使用常量表达式,循环索引或组合索引到数组(以及矩阵和向量)。 所有已知的实现已经支持这一点。

选项2:使用任何表达式索引到数组中。 一些实现已经支持这一点,但它不太常见。

选项3:定义多个扩展。 第一个将暴露普遍支持的功能,后续扩展将暴露不太常用的功能。

A:只应公开通用支持的功能。

 

索引是否适用于向量和矩阵以及数组?

A:是的。

 

是否应该指定迭代次数的限制?

A:

 

扩展控制流量是否应同时暴露? 与索引一样,大多数实现都支持超过最小值。

A:不,只显示索引。

 

版权:https://blog.csdn.net/flycatdeng/article/details/88772031

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值