除了GL ES之外,制服阵列的glGetUniformLocation索引是否有保证顺序?

时间:2015-08-22 09:51:46

标签: opengl opengl-es

GL | ES的文档提及>here<

  

顺序数组索引的位置不需要是顺序的。 “a [1]”的位置可能等于或等于“a [0]”+ 1的位置。

这是否真的在所有OpenGL实现上或仅GL | ES?

1 个答案:

答案 0 :(得分:2)

original GL_ARB_shader_objects extension(首次将着色器对象和制服引入GL中)包含以下语句:

  

有可能       查询数组中元素K的位置ID。可以使用       该位置ID将多个值加载到从该数组开始的数组中       位置K.但是,无法获取该位置ID并添加       该位置ID的整数N前进到元素K + N.       阵列。应用程序必须查询数组的位置ID       元素K + N分开。

在版本2.0中将着色器添加到核心GL时,扩展规范未采用此语言。 然而,从来没有一个关于连续数组元素在任何GL规范中具有连续统一位置的保证,所以你永远不能依赖它。