diff options
Diffstat (limited to 'files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html')
| -rw-r--r-- | files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html b/files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html new file mode 100644 index 0000000000..924ee123be --- /dev/null +++ b/files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html @@ -0,0 +1,213 @@ +--- +title: WebGLRenderingContext.getUniform() +slug: Web/API/WebGLRenderingContext/getUniform +translation_of: Web/API/WebGLRenderingContext/getUniform +--- +<div>{{APIRef("WebGL")}}</div> + +<div><a href="/zh-CN/docs/Web/API/WebGL_API">WebGL API</a> 的 <code>WebGLRenderingContext.getUniform()</code> 方法返回指定位置的全局变量的值。</div> + +<h2 id="语法">语法</h2> + +<pre class="syntaxbox">any <var>gl</var>.getUniform(<var>program</var>, <var>location</var>); +</pre> + +<h3 id="参数">参数</h3> + +<dl> + <dt>program</dt> + <dd>包含全局变量的一个{{domxref("WebGLProgram")}}。</dd> + <dt>location</dt> + <dd>包含要获取的全局变量位置的 {{domxref("WebGLUniformLocation")}} 对象。</dd> +</dl> + +<h3 id="返回值">返回值</h3> + +<p>返回的类型取决于全局变量的类型:</p> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">变量类型(着色器内)</th> + <th scope="col">返回值类型</th> + </tr> + </thead> + <tbody> + <tr> + <th colspan="2">在WebGL 1中支持的</th> + </tr> + <tr> + <td><code>boolean</code></td> + <td>{{domxref("GLBoolean")}}</td> + </tr> + <tr> + <td><code>int</code></td> + <td>{{domxref("GLint")}}</td> + </tr> + <tr> + <td><code>float</code></td> + <td>{{domxref("GLfloat")}}</td> + </tr> + <tr> + <td><code>vec2</code></td> + <td>{{jsxref("Float32Array")}} (with 2 elements)</td> + </tr> + <tr> + <td><code>ivec2</code></td> + <td>{{jsxref("Int32Array")}} (with 2 elements)</td> + </tr> + <tr> + <td><code>bvec2</code></td> + <td>{{jsxref("Array")}} of {{domxref("GLBoolean")}} (with 2 elements)</td> + </tr> + <tr> + <td><code>vec3</code></td> + <td>{{jsxref("Float32Array")}} (with 3 elements)</td> + </tr> + <tr> + <td><code>ivec3</code></td> + <td>{{jsxref("Int32Array")}} (with 3 elements)</td> + </tr> + <tr> + <td><code>bvec3</code></td> + <td>{{jsxref("Array")}} of {{domxref("GLBoolean")}} (with 3 elements)</td> + </tr> + <tr> + <td><code>vec4</code></td> + <td>{{jsxref("Float32Array")}} (with 4 elements)</td> + </tr> + <tr> + <td><code>ivec4</code></td> + <td>{{jsxref("Int32Array")}} (with 4 elements)</td> + </tr> + <tr> + <td><code>bvec4</code></td> + <td>{{jsxref("Array")}} of {{domxref("GLBoolean")}} (with 4 elements)</td> + </tr> + <tr> + <td><code>mat2</code></td> + <td>{{jsxref("Float32Array")}} (with 4 elements)</td> + </tr> + <tr> + <td><code>mat3</code></td> + <td>{{jsxref("Float32Array")}} (with 9 elements)</td> + </tr> + <tr> + <td><code>mat4</code></td> + <td>{{jsxref("Float32Array")}} (with 16 elements)</td> + </tr> + <tr> + <td><code>sampler2D</code></td> + <td>{{domxref("GLint")}}</td> + </tr> + <tr> + <td><code>samplerCube</code></td> + <td>{{domxref("GLint")}}</td> + </tr> + <tr> + <th colspan="2">在WebGL 2中新增支持的</th> + </tr> + <tr> + <td><code>uint</code></td> + <td>{{domxref("GLuint")}}</td> + </tr> + <tr> + <td><code>uvec2</code></td> + <td>{{jsxref("Uint32Array")}} (with 2 elements)</td> + </tr> + <tr> + <td><code>uvec3</code></td> + <td>{{jsxref("Uint32Array")}} (with 3 elements)</td> + </tr> + <tr> + <td><code>uvec4</code></td> + <td>{{jsxref("Uint32Array")}} (with 4 elements)</td> + </tr> + <tr> + <td><code>mat2x3</code></td> + <td>{{jsxref("Float32Array")}} (with 6 elements)</td> + </tr> + <tr> + <td><code>mat2x4</code></td> + <td>{{jsxref("Float32Array")}} (with 8 elements)</td> + </tr> + <tr> + <td><code>mat3x2</code></td> + <td>{{jsxref("Float32Array")}} (with 6 elements)</td> + </tr> + <tr> + <td><code>mat3x4</code></td> + <td>{{jsxref("Float32Array")}} (with 12 elements)</td> + </tr> + <tr> + <td><code>mat4x2</code></td> + <td>{{jsxref("Float32Array")}} (with 8 elements)</td> + </tr> + <tr> + <td><code>mat4x3</code></td> + <td>{{jsxref("Float32Array")}} (with 12 elements)</td> + </tr> + <tr> + <td>any sampler type</td> + <td>{{domxref("GLint")}}</td> + </tr> + </tbody> +</table> + +<h2 id="示例">示例</h2> + +<pre class="brush: js">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] +</pre> + +<h2 id="规范">规范</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">规范</th> + <th scope="col">状态</th> + <th scope="col">注解</th> + </tr> + <tr> + <td>{{SpecName('WebGL', "#5.14.10", "getUniform")}}</td> + <td>{{Spec2('WebGL')}}</td> + <td>Initial definition for WebGL.</td> + </tr> + <tr> + <td>{{SpecName('OpenGL ES 2.0', "glGetUniform.xml", "glGetUniform")}}</td> + <td>{{Spec2('OpenGL ES 2.0')}}</td> + <td>Man page of the (similar) OpenGL ES 2 API.</td> + </tr> + <tr> + <td>{{SpecName('WebGL2', "#3.7.8", "getUniform")}}</td> + <td>{{Spec2('WebGL2')}}</td> + <td>Updated definition for WebGL.</td> + </tr> + <tr> + <td>{{SpecName('OpenGL ES 3.0', "glGetUniform.xhtml", "glGetUniform")}}</td> + <td>{{Spec2('OpenGL ES 3.0')}}</td> + <td>Man page of the (similar) OpenGL ES 3 API.</td> + </tr> + </tbody> +</table> + +<h2 id="浏览器兼容性">浏览器兼容性</h2> + +<p class="hidden">此页面中的兼容性表格由结构化数据生成。如果您想为数据做出贡献,请查看https://github.com/mdn/browser-compat-data并向我们发送获取请求。</p> + +<p>{{Compat("api.WebGLRenderingContext.getUniform")}}</p> + +<h2 id="相关链接">相关链接</h2> + +<ul> + <li>{{domxref("WebGLUniformLocation")}}</li> + <li>{{domxref("WebGLRenderingContext.getActiveUniform()")}}</li> +</ul> |
