WebGLRenderingContext.getFramebufferAttachmentParameter()

getFramebufferAttachmentParameter方法返回帧缓冲区连接的相关信息。

语法

any gl.getFramebufferAttachmentParameter(target, attachment, pname);

参数

target

GLenum类型,指定framebuffer的绑定点。可能的值有:

  • gl.FRAMEBUFFER:缓冲区数据储存,是渲染一张图片使用的颜色、alpha、深度和模板缓冲区的集合。

  • 当使用WebGL 2上下文时,下列的值可额外被使用:

    • gl.DRAW_FRAMEBUFFER:与 gl.FRAMEBUFFER 等同,用作绘画、渲染、清除和写入作业的目标(destination)。

    • gl.READ_FRAMEBUFFER:用作读取作业的源(source)。

attachment

GLenum类型,指定纹理的关联点。可能的值有:

  • gl.COLOR_ATTACHMENT0:连接纹理到帧缓冲区的颜色缓冲区

  • gl.DEPTH_ATTACHMENT:连接纹理到帧缓冲区的深度缓冲区

  • gl.STENCIL_ATTACHMENT:连接纹理到帧缓冲区的模板缓冲区

  • 当使用WebGL 2上下文时,下列的值可额外被使用:

    • gl.DEPTH_STENCIL_ATTACHMENT:连接纹理到两者,深度和模板缓冲区

    • 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:包含连接图片的type。

  • gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:连接图片的纹理或缓冲区(WebGLRenderbuffer或WebGLTexture)。

  • 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

返回值

返回值取决于要求的信息(依pname指定)。类型可为GLint,Glenum,WebGLRenderbuffer,或WebGLTexture。

pname参数 返回值
gl.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE GLenum类型,表示纹理的类型,是gl.RENDERBUFFER,gl.TEXTURE,或当没有图片连接时返回gl.NONE
gl.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 连接图片的纹理(WebGLTexture)或渲染缓冲区(WebGLRenderbuffer)
gl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL GLint类型,表示mipmap等级,默认为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 GLint类型,表示连接的alpha成分中的字节数
gl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE GLint类型,表示连接的蓝色成分中的字节数
gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING GLenum类型,表示指定连接的成分的编码,值为gl.LINEAR或gl.SRGB
gl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE GLenum类型,表示指定的附件的成分的格式。它是gl.FLOAT,gl.INT, gl.UNSIGNED_INT, gl.SIGNED_NORMALIZED, 或gl.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.LINEAR或ext.SRGB_EXT

提示

gl.INVALID_ENUM错误将会被抛出,如果目标不是gl.FRAMEBUFFER, gl.DRAW_FRAMEBUFFER, gl.READ_FRAMEBUFFER,或连接点是不被接受的。

例子

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

规范

WebGL 1.0

OpenGL ES 2.0

WebGL 2.0

OpenGL ES 3.0

浏览器兼容

Desktop:Chrome 9、 Edge 12、Firefox 4.0 、 Internet Explorer 11 、Opera 12、Safari 5.1;

Mobile: Android ?、 Chrome for Android 25、 Firefox Mobile 4.0、Firefox OS 1.0、 IE Mobile ?、 Opera Mobile 12、 Safari Mobile 8.0;

Chrome、FireFox 发行版本需要在偏好设置启用WebGL2。

results matching ""

    No results matching ""