aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html')
-rw-r--r--files/zh-cn/web/api/webglrenderingcontext/getuniform/index.html213
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"))
+//&gt;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>