WebGLRenderingContext:getUniform() 方法
WebGLRenderingContext.getUniform()
方法是 WebGL API 的一部分,用于返回给定位置的统一变量的值。
语法
js
getUniform(program, location)
参数
program
-
包含统一属性的
WebGLProgram
。 location
-
包含要获取的统一属性位置的
WebGLUniformLocation
对象。
返回值
返回类型取决于统一类型
统一类型 | 返回类型 |
---|---|
仅限 WebGL 1 | |
布尔值 |
GLBoolean |
整数 |
GLint |
浮点数 |
GLfloat |
vec2 |
Float32Array (包含 2 个元素) |
ivec2 |
Int32Array (包含 2 个元素) |
bvec2 |
Array of GLBoolean (包含 2 个元素) |
vec3 |
Float32Array (包含 3 个元素) |
ivec3 |
Int32Array (包含 3 个元素) |
bvec3 |
Array of GLBoolean (包含 3 个元素) |
vec4 |
Float32Array (包含 4 个元素) |
ivec4 |
Int32Array (包含 4 个元素) |
bvec4 |
Array of GLBoolean (包含 4 个元素) |
mat2 |
Float32Array (包含 4 个元素) |
mat3 |
Float32Array (包含 9 个元素) |
mat4 |
Float32Array (包含 16 个元素) |
sampler2D |
GLint |
samplerCube |
GLint |
WebGL 2 中还提供以下内容 | |
无符号整数 |
GLuint |
uvec2 |
Uint32Array (包含 2 个元素) |
uvec3 |
Uint32Array (包含 3 个元素) |
uvec4 |
Uint32Array (包含 4 个元素) |
mat2x3 |
Float32Array (包含 6 个元素) |
mat2x4 |
Float32Array (包含 8 个元素) |
mat3x2 |
Float32Array (包含 6 个元素) |
mat3x4 |
Float32Array (包含 12 个元素) |
mat4x2 |
Float32Array (包含 8 个元素) |
mat4x3 |
Float32Array (包含 12 个元素) |
任何采样器类型 | GLint |
示例
js
const loc = gl.getUniformLocation(program, "u_foobar");
gl.getUniform(program, loc);
规范
规范 |
---|
WebGL 规范 # 5.14.10 |
WebGL 2.0 规范 # 3.7.8 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。