WebGLRenderingContext.getUniform()
WebGL API 的
WebGLRenderingContext.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