WebGL2RenderingContext: getActiveUniforms() 方法

Baseline 已广泛支持

此功能已成熟,并可在多种设备和浏览器版本上运行。自 2021 年 9 月起,所有浏览器均已支持此功能。

注意:此功能在 Web Workers 中可用。

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

语法

js
getActiveUniforms(program, uniformIndices, pname)

参数

program

包含活动 uniform 的 WebGLProgram

uniformIndices

一个 Array,包含要查询的活动 uniform 索引的 GLuint

pname

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

gl.UNIFORM_TYPE

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

gl.UNIFORM_SIZE

返回一个 Array,包含指示 uniform 大小的 GLuint

gl.UNIFORM_BLOCK_INDEX

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

gl.UNIFORM_OFFSET

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

gl.UNIFORM_ARRAY_STRIDE

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

gl.UNIFORM_MATRIX_STRIDE

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

gl.UNIFORM_IS_ROW_MAJOR

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

返回值

取决于使用 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

浏览器兼容性

另见