WebGLRenderingContext.getUniform()

WebGL APIWebGLRenderingContext.getUniform() 方法返回指定位置的全局变量的值。

语法

any gl.getUniform(program, location);

参数

program
包含全局变量的一个WebGLProgram
location
包含要获取的全局变量位置的 WebGLUniformLocation 对象。

返回值

返回的类型取决于全局变量的类型:

变量类型(着色器内) 返回值类型
在WebGL 1中支持的
boolean GLBoolean (en-US)
int GLint (en-US)
float GLfloat (en-US)
vec2 Float32Array (with 2 elements)
ivec2 Int32Array (with 2 elements)
bvec2 Array of GLBoolean (en-US) (with 2 elements)
vec3 Float32Array (with 3 elements)
ivec3 Int32Array (with 3 elements)
bvec3 Array of GLBoolean (en-US) (with 3 elements)
vec4 Float32Array (with 4 elements)
ivec4 Int32Array (with 4 elements)
bvec4 Array of GLBoolean (en-US) (with 4 elements)
mat2 Float32Array (with 4 elements)
mat3 Float32Array (with 9 elements)
mat4 Float32Array (with 16 elements)
sampler2D GLint (en-US)
samplerCube GLint (en-US)
在WebGL 2中新增支持的
uint GLuint (en-US)
uvec2 Uint32Array (with 2 elements)
uvec3 Uint32Array (with 3 elements)
uvec4 Uint32Array (with 4 elements)
mat2x3 Float32Array (with 6 elements)
mat2x4 Float32Array (with 8 elements)
mat3x2 Float32Array (with 6 elements)
mat3x4 Float32Array (with 12 elements)
mat4x2 Float32Array (with 8 elements)
mat4x3 Float32Array (with 12 elements)
any sampler type GLint (en-US)

示例

var loc = gl.getUniformLocation(program, 'u_foobar');
gl.getUniform(program, loc);

//code in vertex-shader
//...
//uniform mat4 uNormalMatrix;
//...
//gl.getUniform(program,gl.getUniformLocation(program,"uNormalMatrix"))
//>Float32Array(16) [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

规范

规范 状态 注解
WebGL 1.0
getUniform
Recommendation Initial definition for WebGL.
OpenGL ES 2.0
glGetUniform
Standard Man page of the (similar) OpenGL ES 2 API.
WebGL 2.0
getUniform
Editor's Draft Updated definition for WebGL.
OpenGL ES 3.0
glGetUniform
Standard Man page of the (similar) OpenGL ES 3 API.

浏览器兼容性

BCD tables only load in the browser

相关链接