WebGL2RenderingContext: getActiveUniformBlockParameter() 方法

Baseline 已广泛支持

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

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

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

语法

js
getActiveUniformBlockParameter(program, uniformBlockIndex, pname)

参数

program

包含活动 uniform 块的 WebGLProgram

uniformBlockIndex

一个 GLuint,指定 uniform 块在程序中的索引。

pname

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

gl.UNIFORM_BLOCK_BINDING

返回一个 GLuint,指示 uniform 缓冲区绑定点。

gl.UNIFORM_BLOCK_DATA_SIZE

返回一个 GLuint,指示最小的总缓冲区对象大小。

gl.UNIFORM_BLOCK_ACTIVE_UNIFORMS

返回一个 GLuint,指示 uniform 块中活动 uniform 的数量。

gl.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES

返回一个 Uint32Array,指示 uniform 块中活动 uniform 的列表。

gl.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER

返回一个 GLboolean,指示 uniform 块是否被顶点着色器引用。

gl.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER

返回一个 GLboolean,指示 uniform 块是否被片段着色器引用。

返回值

取决于通过 pname 参数请求的信息。如果发生错误,则返回 null

示例

js
const blockSize = gl.getActiveUniformBlockParameter(
  program,
  blockIndex,
  gl.UNIFORM_BLOCK_DATA_SIZE,
);

规范

规范
WebGL 2.0 规范
# 3.7.16

浏览器兼容性

另见