WebGLRenderingContext: viewport() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebGLRenderingContext.viewport() 方法是 WebGL API 的一部分,用于设置视口。视口指定了从标准化设备坐标到窗口坐标的仿射变换。

语法

js
viewport(x, y, width, height)

参数

x

一个 GLint,指定视口原点左下角的水平坐标。默认值:0。

y

一个 GLint,指定视口原点左下角的垂直坐标。默认值:0。

width

一个非负的 GLsizei,指定视口的宽度。默认值:canvas 的宽度。

height

一个非负的 GLsizei,指定视口的高度。默认值:canvas 的高度。

返回值

无(undefined)。

异常

如果 *width* 或 *height* 是负值,则会抛出 `gl.INVALID_VALUE` 错误。

示例

当您首次创建 WebGL 上下文时,视口大小将与 canvas 大小匹配。但是,如果您调整 canvas 的大小,您需要告诉 WebGL 上下文新的视口设置。在这种情况下,您可以使用 `gl.viewport`。

js
gl.viewport(0, 0, canvas.width, canvas.height);

视口的宽度和高度会被限制在一个依赖于实现的范围内。要获取此范围,您可以使用 `MAX_VIEWPORT_DIMS` 常量,它会返回一个 Int32Array

js
gl.getParameter(gl.MAX_VIEWPORT_DIMS);
// e.g. Int32Array[16384, 16384]

要获取当前的视口,请查询 `VIEWPORT` 常量。

js
gl.getParameter(gl.VIEWPORT);
// e.g. Int32Array[0, 0, 640, 480]

规范

规范
WebGL 规范
# 5.14.4

浏览器兼容性

另见