WebGLRenderingContext: renderbufferStorage() 方法

Baseline 已广泛支持

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

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

WebGL API 的 WebGLRenderingContext.renderbufferStorage() 方法创建并初始化渲染缓冲对象的数据存储。

语法

js
renderbufferStorage(target, internalFormat, width, height)

参数

目标

一个 GLenum,指定目标渲染缓冲区对象。可能的值

gl.RENDERBUFFER

为具有可渲染内部格式的单个图像提供缓冲区数据存储。

internalFormat

一个 GLenum,指定渲染缓冲的内部格式。可能的值

  • gl.RGBA4:4 位红色,4 位绿色,4 位蓝色,4 位 Alpha。
  • gl.RGB565:5 位红色,6 位绿色,5 位蓝色。
  • gl.RGB5_A1:5 位红色,5 位绿色,5 位蓝色,1 位 Alpha。
  • gl.DEPTH_COMPONENT16:16 位深度。
  • gl.STENCIL_INDEX8:8 位模板。
  • gl.DEPTH_STENCIL

使用 WebGL 2 上下文时,还可以使用以下值:

  • gl.R8
  • gl.R8UI
  • gl.R8I
  • gl.R16UI
  • gl.R16I
  • gl.R32UI
  • gl.R32I
  • gl.RG8
  • gl.RG8UI
  • gl.RG8I
  • gl.RG16UI
  • gl.RG16I
  • gl.RG32UI
  • gl.RG32I
  • gl.RGB8
  • gl.RGBA8
  • gl.SRGB8_ALPHA8(WebGL 1 也可用作扩展,参见下文)
  • gl.RGB10_A2
  • gl.RGBA8UI
  • gl.RGBA8I
  • gl.RGB10_A2UI
  • gl.RGBA16UI
  • gl.RGBA16I
  • gl.RGBA32I
  • gl.RGBA32UI
  • gl.DEPTH_COMPONENT24
  • gl.DEPTH_COMPONENT32F
  • gl.DEPTH24_STENCIL8
  • gl.DEPTH32F_STENCIL8

使用 WEBGL_color_buffer_float 扩展时

  • ext.RGBA32F_EXT:RGBA 32 位浮点类型。
  • ext.RGB32F_EXT:RGB 32 位浮点类型。

使用 EXT_sRGB 扩展时

  • ext.SRGB8_ALPHA8_EXT:8 位 sRGB 和 Alpha。

使用 WebGL 2 contextEXT_color_buffer_float 扩展时

  • gl.R16F
  • gl.RG16F
  • gl.RGBA16F
  • gl.R32F
  • gl.RG32F
  • gl.RGBA32F
  • gl.R11F_G11F_B10F
width

一个 GLsizei,指定渲染缓冲的宽度(以像素为单位)。

height

一个 GLsizei,指定渲染缓冲的高度(以像素为单位)。

返回值

无(undefined)。

示例

js
gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);

规范

规范
WebGL 规范
# 5.14.7
WebGL 2.0 规范
# 3.7.5

浏览器兼容性

另见