WebGL2RenderingContext: getActiveUniforms() 方法

基线 广泛可用

此功能已得到良好确立,并且可在许多设备和浏览器版本上运行。它自以下时间以来在浏览器中可用 2021 年 9 月.

WebGL2RenderingContext.getActiveUniforms() 方法是 WebGL 2 API 的一部分,用于检索 WebGLProgram 中活动 uniform 的信息。

语法

js
getActiveUniforms(program, uniformIndices, pname)

参数

program

包含活动 uniform 的 WebGLProgram

uniformIndices

一个 Array,包含 GLuint 类型的值,指定要查询的活动 uniform 的索引。

pname

一个 GLenum,指定要查询的信息。可能的值

gl.UNIFORM_TYPE

返回一个 Array,包含 GLenum 类型的值,指示 uniform 的类型

gl.UNIFORM_SIZE

返回一个 Array,包含 GLuint 类型的值,指示 uniform 的大小。

gl.UNIFORM_BLOCK_INDEX

返回一个 Array,包含 GLint 类型的值,指示 uniform 的块索引。

gl.UNIFORM_OFFSET

返回一个 Array,包含 GLint 类型的值,指示 uniform 缓冲区的偏移量。

gl.UNIFORM_ARRAY_STRIDE

返回一个 Array,包含 GLint 类型的值,指示元素之间的步长。

gl.UNIFORM_MATRIX_STRIDE

返回一个 Array,包含 GLint 类型的值,指示列主序矩阵或行主序矩阵的列之间的步长。

gl.UNIFORM_IS_ROW_MAJOR

返回一个 Array,包含 GLboolean 类型的值,指示每个 uniform 是否为行主序矩阵。

返回值

取决于使用 pname 参数请求的信息。

示例

js
const uniformIndices = gl.getUniformIndices(program, [
  "UBORed",
  "UBOGreen",
  "UBOBlue",
]);
const uniformOffsets = gl.getActiveUniforms(
  program,
  uniformIndices,
  gl.UNIFORM_OFFSET,
);

规范

规范
WebGL 2.0 规范
# 3.7.16

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅