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 |
瀏覽器相容性
載入中…