WebGLRenderingContext: copyTexImage2D() 方法

Baseline 已广泛支持

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

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

WebGLRenderingContext 接口的 copyTexImage2D() 方法是 WebGL API 的一部分,用于将当前 WebGLFramebuffer 的像素复制到一个 2D 纹理图像中。

语法

js
copyTexImage2D(target, level, internalformat, x, y, width, height, border)

参数

目标

一个 GLenum,指定活动纹理的绑定点(目标)。可能的值有:

  • gl.TEXTURE_2D:一个二维纹理。
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X:立方体贴图纹理的正 X 面。
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X:立方体贴图纹理的负 X 面。
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y:立方体贴图纹理的正 Y 面。
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y:立方体贴图纹理的负 Y 面。
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z:立方体贴图纹理的正 Z 面。
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z:立方体贴图纹理的负 Z 面。
level

一个 GLint,指定细节级别。级别 0 是基本图像级别,级别 n 是第 n 个 mipmap 缩减级别。

internalformat

一个 GLenum,指定纹理加载后的存储方式。可能的值:

  • gl.ALPHA:丢弃红色、绿色和蓝色分量,只读取 alpha 分量。
  • gl.RGB:丢弃 alpha 分量,只读取红色、绿色和蓝色分量。
  • gl.RGBA:从颜色缓冲区读取红色、绿色、蓝色和 alpha 分量。
  • gl.LUMINANCE:每个颜色分量都是一个亮度分量,alpha 为 1.0。
  • gl.LUMINANCE_ALPHA:每个分量都是一个亮度/alpha 分量。
x

一个 GLint,指定开始复制的左下角 x 坐标。

y

一个 GLint,指定开始复制的左下角 y 坐标。

width

一个 GLsizei,指定纹理的宽度(以 texel 为单位)。

height

一个 GLsizei,指定纹理的高度(以 texel 为单位)。

border

一个 GLint,指定边框的宽度。必须为 0。

返回值

无(undefined)。

示例

js
gl.copyTexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, 0, 0, 512, 512, 0);

规范

规范
WebGL 规范
# 5.14.8

浏览器兼容性

另见