--- title: WebGLRenderingContext.getUniform() slug: Web/API/WebGLRenderingContext/getUniform translation_of: Web/API/WebGLRenderingContext/getUniform ---
{{APIRef("WebGL")}}
WebGL APIWebGLRenderingContext.getUniform() 方法返回指定位置的全局变量的值。

语法

any gl.getUniform(program, location);

参数

program
包含全局变量的一个{{domxref("WebGLProgram")}}。
location
包含要获取的全局变量位置的 {{domxref("WebGLUniformLocation")}} 对象。

返回值

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

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

示例

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]

规范

规范 状态 注解
{{SpecName('WebGL', "#5.14.10", "getUniform")}} {{Spec2('WebGL')}} Initial definition for WebGL.
{{SpecName('OpenGL ES 2.0', "glGetUniform.xml", "glGetUniform")}} {{Spec2('OpenGL ES 2.0')}} Man page of the (similar) OpenGL ES 2 API.
{{SpecName('WebGL2', "#3.7.8", "getUniform")}} {{Spec2('WebGL2')}} Updated definition for WebGL.
{{SpecName('OpenGL ES 3.0', "glGetUniform.xhtml", "glGetUniform")}} {{Spec2('OpenGL ES 3.0')}} Man page of the (similar) OpenGL ES 3 API.

浏览器兼容性

{{Compat("api.WebGLRenderingContext.getUniform")}}

相关链接