WebGLRenderingContext: getUniform() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.getUniform() 方法是 WebGL API 的一部分,它返回指定位置的 uniform 变量的值。
语法
js
getUniform(program, location)
参数
program-
包含 uniform 属性的
WebGLProgram。 location-
一个包含要获取的 uniform 属性的
WebGLUniformLocation对象。
返回值
返回类型取决于 uniform 类型
| Uniform 类型 | 返回类型 |
|---|---|
| 仅 WebGL 1 | |
boolean |
GLBoolean |
int |
GLint |
float |
GLfloat |
vec2 |
Float32Array(包含 2 个元素) |
ivec2 |
Int32Array(包含 2 个元素) |
bvec2 |
Array,包含 GLBoolean(包含 2 个元素) |
vec3 |
Float32Array(包含 3 个元素) |
ivec3 |
Int32Array(包含 3 个元素) |
bvec3 |
Array,包含 GLBoolean(包含 3 个元素) |
vec4 |
Float32Array(包含 4 个元素) |
ivec4 |
Int32Array(包含 4 个元素) |
bvec4 |
Array,包含 GLBoolean(包含 4 个元素) |
mat2 |
Float32Array(包含 4 个元素) |
mat3 |
Float32Array(包含 9 个元素) |
mat4 |
Float32Array(包含 16 个元素) |
sampler2D |
GLint |
samplerCube |
GLint |
| WebGL 2 中还可用 | |
uint |
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 个元素) |
| 任意 sampler 类型 | GLint |
示例
js
const loc = gl.getUniformLocation(program, "u_foobar");
gl.getUniform(program, loc);
规范
| 规范 |
|---|
| WebGL 规范 # 5.14.10 |
| WebGL 2.0 规范 # 3.7.8 |
浏览器兼容性
加载中…