WebGLRenderingContext: getUniform() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 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

瀏覽器相容性

另見