WebGL2RenderingContext: texStorage2D() 方法

基线 广泛可用

此功能已得到良好建立,可在许多设备和浏览器版本中使用。它自以下时间起在浏览器中可用: 2021 年 9 月.

WebGL2RenderingContext.texStorage2D() 方法是 WebGL API 的一部分,用于指定二维纹理存储的所有级别。

语法

js
texStorage2D(target, levels, internalformat, width, height)

参数

target

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

  • gl.TEXTURE_2D:二维纹理。
  • gl.TEXTURE_CUBE_MAP:立方体贴图纹理。
levels

一个 GLint,指定纹理级别的数量。

internalformat

一个 GLenum,指定纹理存储格式。可能的值

  • gl.R8
  • gl.R16F
  • gl.R32F
  • gl.R8UI
  • gl.RG8
  • gl.RG16F
  • gl.RG32F
  • gl.RG8UI
  • gl.RGB8
  • gl.SRGB8
  • gl.RGB565
  • gl.R11F_G11F_B10F
  • gl.RGB9_E5
  • gl.RGB16F
  • gl.RGB32F
  • gl.RGB8UI
  • gl.RGBA8
  • gl.SRGB8_ALPHA8
  • gl.RGB5_A1
  • gl.RGBA4
  • gl.RGBA16F
  • gl.RGBA32F
  • gl.RGBA8UI

与 OpenGL 3.0 不同,WebGL 2 **不支持**以下 ETC2 和 EAC 压缩纹理格式(请参阅 WebGL 2 规范中的 第 5.37 节)。不过,您可能能够通过 WEBGL_compressed_texture_etc 扩展来启用它们。

  • gl.COMPRESSED_R11_EAC
  • gl.COMPRESSED_SIGNED_R11_EAC
  • gl.COMPRESSED_RG11_EAC
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • gl.COMPRESSED_RGB8_ETC2
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • gl.COMPRESSED_SRGB8_ETC2
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
width

一个 GLsizei,指定纹理的宽度。

height

一个 GLsizei,指定纹理的高度。

返回值

无 (undefined).

示例

js
gl.texStorage2D(gl.TEXTURE_2D, 1, gl.RGB8, 256, 256);

规范

规范
WebGL 2.0 规范
# 3.7.6

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅