WebGLRenderingContext: getFramebufferAttachmentParameter() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.getFramebufferAttachmentParameter() 方法是 WebGL API 的一部分,用於返回關於幀緩衝附件的資訊。
語法
js
getFramebufferAttachmentParameter(target, attachment, pname)
引數
目標-
一個
GLenum,指定繫結點(目標)。可能的值gl.FRAMEBUFFER-
用於渲染影像的顏色、Alpha、深度和模板緩衝區的集合緩衝區資料儲存。
使用 WebGL 2 上下文時,還可以使用以下值:
gl.DRAW_FRAMEBUFFER-
相當於
gl.FRAMEBUFFER。用作繪圖、渲染、清除和寫入操作的目標。 gl.READ_FRAMEBUFFER-
用作讀取操作的源。
attachment-
一個
GLenum,指定texture的附件點。可能的值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:已附加影像的紋理或渲染緩衝區(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_SIZEgl.FRAMEBUFFER_ATTACHMENT_BLUE_SIZEgl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODINGgl.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPEgl.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZEgl.FRAMEBUFFER_ATTACHMENT_GREEN_SIZEgl.FRAMEBUFFER_ATTACHMENT_RED_SIZEgl.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZEgl.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
使用
OVR_multiview2擴充套件時ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR:幀緩衝物件附件的檢視數量。ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR:幀緩衝物件附件的基礎檢視索引。
返回值
取決於請求的資訊(由 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.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。 |
ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR |
一個 GLsizei,指示幀緩衝物件附件的檢視數量。 |
ext.FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR
|
一個 GLint,指示幀緩衝物件附件的基礎檢視索引。 |
異常
- 如果
target不是gl.FRAMEBUFFER、gl.DRAW_FRAMEBUFFER、gl.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 |
瀏覽器相容性
載入中…