WebGLRenderingContext: getFramebufferAttachmentParameter() 方法

基线 广泛可用

此功能已完善,可在许多设备和浏览器版本上运行。自以下日期起,它已在各浏览器中可用 2015 年 7 月.

WebGLRenderingContext.getFramebufferAttachmentParameter() 方法是 WebGL API 的一部分,用于返回有关帧缓冲区附件的信息。

语法

js
getFramebufferAttachmentParameter(target, attachment, pname)

参数

target

指定绑定点(目标)的 GLenum。可能的值

gl.FRAMEBUFFER

用于渲染图像的颜色、alpha、深度和模板缓冲区的集合缓冲区数据存储。

当使用 WebGL 2 上下文 时,以下值也可使用

gl.DRAW_FRAMEBUFFER

等同于 gl.FRAMEBUFFER。用作绘制、渲染、清除和写入操作的目标。

gl.READ_FRAMEBUFFER

用作读取操作的源。

attachment

指定 texture 附加点的 GLenum。可能的值

  • gl.COLOR_ATTACHMENT0:帧缓冲区颜色缓冲区的纹理附件。
  • gl.DEPTH_ATTACHMENT:帧缓冲区深度缓冲区的纹理附件。
  • gl.STENCIL_ATTACHMENT:帧缓冲区模板缓冲区的纹理附件。
  • gl.DEPTH_STENCIL_ATTACHMENT:深度和模板缓冲区的纹理附件。

当使用 WebGL 2 上下文 时,以下值也可使用

  • gl.COLOR_ATTACHMENT1 gl.COLOR_ATTACHMENT2 gl.COLOR_ATTACHMENT3 gl.COLOR_ATTACHMENT4 gl.COLOR_ATTACHMENT5 gl.COLOR_ATTACHMENT6 gl.COLOR_ATTACHMENT7 gl.COLOR_ATTACHMENT8 gl.COLOR_ATTACHMENT9 gl.COLOR_ATTACHMENT10 gl.COLOR_ATTACHMENT11 gl.COLOR_ATTACHMENT12 gl.COLOR_ATTACHMENT13 gl.COLOR_ATTACHMENT14 gl.COLOR_ATTACHMENT15

当使用 WEBGL_draw_buffers 扩展时

  • ext.COLOR_ATTACHMENT0_WEBGL(与 gl.COLOR_ATTACHMENT0 相同)ext.COLOR_ATTACHMENT1_WEBGL ext.COLOR_ATTACHMENT2_WEBGL ext.COLOR_ATTACHMENT3_WEBGL ext.COLOR_ATTACHMENT4_WEBGL ext.COLOR_ATTACHMENT5_WEBGL ext.COLOR_ATTACHMENT6_WEBGL ext.COLOR_ATTACHMENT7_WEBGL ext.COLOR_ATTACHMENT8_WEBGL ext.COLOR_ATTACHMENT9_WEBGL ext.COLOR_ATTACHMENT10_WEBGL ext.COLOR_ATTACHMENT11_WEBGL ext.COLOR_ATTACHMENT12_WEBGL ext.COLOR_ATTACHMENT13_WEBGL ext.COLOR_ATTACHMENT14_WEBGL ext.COLOR_ATTACHMENT15_WEBGL
pname

指定要查询信息的 GLenum。可能的值

  • gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:包含附加图像的类型。
  • gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:附加图像的纹理或渲染缓冲区(WebGLRenderbufferWebGLTexture)。
  • gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:Mipmap 级别。默认值:0。
  • gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:纹理的立方体贴图面的名称。

当使用 EXT_sRGB 扩展时

  • ext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT:帧缓冲区颜色编码。

当使用 WebGL 2 上下文 时,以下值也可使用

  • gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
  • gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
  • gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
  • gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER

当使用 OVR_multiview2 扩展时

  • ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR:帧缓冲区对象附件的视图数。
  • ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR:帧缓冲区对象附件的基本视图索引。

返回值

取决于请求的信息(由 pname 指定)。可以是 GLintGLenumWebGLRenderbufferWebGLTexture

pname 参数 返回值
gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 指示纹理类型的 GLenum。可以是 gl.RENDERBUFFERgl.TEXTURE,或者如果未附加图像,则为 gl.NONE
gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 附加图像的纹理(WebGLTexture)或渲染缓冲区(WebGLRenderbuffer)。
gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 指示 Mipmap 级别的 GLint。默认值:0。
gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 指示纹理立方体贴图面名称的 GLenum。可能的值
  • 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 面图像。
gl.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 指示附件的 alpha 分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 指示附件的蓝色分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 指示指定附件的分量编码的 GLenum。可以是 gl.LINEARgl.SRGB
gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 指示指定附件的分量格式的 GLenum。可以是 gl.FLOATgl.INTgl.UNSIGNED_INTgl.SIGNED_NORMALIZEDgl.UNSIGNED_NORMALIZED
gl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 指示附件的深度分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 指示附件的绿色分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_RED_SIZE 指示附件的红色分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 指示附件的模板分量中位数的 GLint
gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 指示包含附加图像的纹理图层的数量的 GLint
ext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT

一个表示帧缓冲区颜色编码的GLenum类型。可以是gl.LINEARext.SRGB_EXT
ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR 一个表示帧缓冲区对象附件视图数量的GLsizei类型。
ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR 一个表示帧缓冲区对象附件基本视图索引的GLint类型。

异常

  • 如果target不是gl.FRAMEBUFFERgl.DRAW_FRAMEBUFFERgl.READ_FRAMEBUFFER,或者如果attachment不是接受的附件点之一,则会抛出gl.INVALID_ENUM错误。

示例

js
gl.getFramebufferAttachmentParameter(
  gl.FRAMEBUFFER,
  gl.COLOR_ATTACHMENT0,
  gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE,
);

规范

规范
WebGL 规范
# 5.14.6
WebGL 2.0 规范
# 3.7.4

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅