--- title: WebGLRenderingContext.viewport() slug: Web/API/WebGLRenderingContext/viewport tags: - WebGL - viewport translation_of: Web/API/WebGLRenderingContext/viewport ---
WebGL API 的 WebGLRenderingContext.viewport()
方法,用来设置视口,即指定从标准设备到窗口坐标的x、y仿射变换。
void gl.viewport(x, y, width, height);
x
y
None.
只要宽度或高度有一个为负值,gl.INVALID_VALUE错误将被抛出。
.
当你第一次创建WebGL上下文的时候,视口的大小将和canvas的大小是匹配的。然而,如果你重新改变了canvas的大小,你需要告诉WebGL上下文设定新的视口。在这里,你可以使用gl.viewport。
gl.viewport(0, 0, canvas.width, canvas.height);
视口的宽度和高度的设定范围是依赖于底层如何实现的。如果你要获取这个范围,你可以查询MAX_VIEWPORT_DIMS
常量,它将返回 {{jsxref("Int32Array")}}。
gl.getParameter(gl.MAX_VIEWPORT_DIMS); // e.g. Int32Array[16384, 16384]
如果要获取当前的视口,则可以查询VIEWPORT
常量。
gl.getParameter(gl.VIEWPORT); // e.g. Int32Array[0, 0, 640, 480]
Specification | Status | Comment |
---|---|---|
{{SpecName('WebGL', "#5.14.4", "viewport")}} | {{Spec2('WebGL')}} | Initial definition. |
{{SpecName('OpenGL ES 2.0', "glViewport.xml", "glViewport")}} | {{Spec2('OpenGL ES 2.0')}} | Man page of the OpenGL API. |
{{Compat("api.WebGLRenderingContext.viewport")}}