: Specifies the framebuffer target. {{param|target}} must be {{enum|GL_DRAW_FRAMEBUFFER}}, {{enum|GL_READ_FRAMEBUFFER}}, or {{enum|GL_FRAMEBUFFER}}. {{enum|GL_FRAMEBUFFER}} is equivalent to {{enum|GL_DRAW_FRAMEBUFFER}}.

: Specifies the framebuffer target. {{param|target}} must be {{enum|GL_DRAW_FRAMEBUFFER}}, {{enum|GL_READ_FRAMEBUFFER}}, or {{enum|GL_FRAMEBUFFER}}. {{enum|GL_FRAMEBUFFER}} is equivalent to {{enum|GL_DRAW_FRAMEBUFFER}}.

; attachment

; attachment

−

: Specifies the attachment point of the framebuffer. {{param|attachment}} must be {{enum|GL_COLOR_ATTACHMENT''i''}}, {{enum|GL_DEPTH_ATTACHMENT}}, {{enum|GL_STENCIL_ATTACHMENT}} or {{enum|GL_DEPTH_STENCIL_ATTACHMMENT}}.

+

: Specifies the attachment point of the framebuffer. {{param|attachment}} must be {{enum|GL_COLOR_ATTACHMENT''i''}}, {{enum|GL_DEPTH_ATTACHMENT}}, {{enum|GL_STENCIL_ATTACHMENT}} or {{enum|GL_DEPTH_STENCIL_ATTACHMENT}}.

; textarget

; textarget

: For '''glFramebufferTexture1D''', '''glFramebufferTexture2D''' and '''glFramebufferTexture3D''', specifies what type of texture is expected in the {{param|texture}} parameter, or for cube map textures, which face is to be attached.

: For '''glFramebufferTexture1D''', '''glFramebufferTexture2D''' and '''glFramebufferTexture3D''', specifies what type of texture is expected in the {{param|texture}} parameter, or for cube map textures, which face is to be attached.

Line 28:

Line 28:

'''glFramebufferTexture''', '''glFramebufferTexture1D''', '''glFramebufferTexture2D''', and '''glFramebufferTexture3D''' attach a selected mipmap level or image of a texture object as one of the logical buffers of the framebuffer object currently bound to {{param|target}}. {{param|target}} must be {{enum|GL_DRAW_FRAMEBUFFER}}, {{enum|GL_READ_FRAMEBUFFER}}, or {{enum|GL_FRAMEBUFFER}}. {{enum|GL_FRAMEBUFFER}} is equivalent to {{enum|GL_DRAW_FRAMEBUFFER}}.

'''glFramebufferTexture''', '''glFramebufferTexture1D''', '''glFramebufferTexture2D''', and '''glFramebufferTexture3D''' attach a selected mipmap level or image of a texture object as one of the logical buffers of the framebuffer object currently bound to {{param|target}}. {{param|target}} must be {{enum|GL_DRAW_FRAMEBUFFER}}, {{enum|GL_READ_FRAMEBUFFER}}, or {{enum|GL_FRAMEBUFFER}}. {{enum|GL_FRAMEBUFFER}} is equivalent to {{enum|GL_DRAW_FRAMEBUFFER}}.

−

{{param|attachment}} specifies the logical attachment of the framebuffer and must be {{enum|GL_COLOR_ATTACHMENT''i''}}, {{enum|GL_DEPTH_ATTACHMENT}}, {{enum|GL_STENCIL_ATTACHMENT}} or {{enum|GL_DEPTH_STENCIL_ATTACHMMENT}}. ''i'' in {{enum|GL_COLOR_ATTACHMENT''i''}} may range from zero to the value of {{enum|GL_MAX_COLOR_ATTACHMENTS}} - 1. Attaching a level of a texture to {{enum|GL_DEPTH_STENCIL_ATTACHMENT}} is equivalent to attaching that level to both the {{enum|GL_DEPTH_ATTACHMENT}}''and'' the {{enum|GL_STENCIL_ATTACHMENT}} attachment points simultaneously.

+

{{param|attachment}} specifies the logical attachment of the framebuffer and must be {{enum|GL_COLOR_ATTACHMENT''i''}}, {{enum|GL_DEPTH_ATTACHMENT}}, {{enum|GL_STENCIL_ATTACHMENT}} or {{enum|GL_DEPTH_STENCIL_ATTACHMENT}}. ''i'' in {{enum|GL_COLOR_ATTACHMENT''i''}} may range from zero to the value of {{enum|GL_MAX_COLOR_ATTACHMENTS}} - 1. Attaching a level of a texture to {{enum|GL_DEPTH_STENCIL_ATTACHMENT}} is equivalent to attaching that level to both the {{enum|GL_DEPTH_ATTACHMENT}}''and'' the {{enum|GL_STENCIL_ATTACHMENT}} attachment points simultaneously.

{{param|textarget}} specifies what type of texture is named by {{param|texture}}, and for cube map textures, specifies the face that is to be attached. If {{param|texture}} is not zero, it must be the name of an existing texture with type {{param|textarget}}, unless it is a cube map texture, in which case {{param|textarget}} must be {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_X}}{{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_X}}, {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_Y}}, {{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_Y}}, {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_Z}}, or {{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_Z}}.

{{param|textarget}} specifies what type of texture is named by {{param|texture}}, and for cube map textures, specifies the face that is to be attached. If {{param|texture}} is not zero, it must be the name of an existing texture with type {{param|textarget}}, unless it is a cube map texture, in which case {{param|textarget}} must be {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_X}}{{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_X}}, {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_Y}}, {{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_Y}}, {{enum|GL_TEXTURE_CUBE_MAP_POSITIVE_Z}}, or {{enum|GL_TEXTURE_CUBE_MAP_NEGATIVE_Z}}.

Specifies the framebuffer target. target​ must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.

attachment

Specifies the attachment point of the framebuffer. attachment​ must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT.

textarget

For glFramebufferTexture1D, glFramebufferTexture2D and glFramebufferTexture3D, specifies what type of texture is expected in the texture​ parameter, or for cube map textures, which face is to be attached.

texture

Specifies the texture object to attach to the framebuffer attachment point named by attachment​.

level

Specifies the mipmap level of texture​ to attach.

Description

glFramebufferTexture, glFramebufferTexture1D, glFramebufferTexture2D, and glFramebufferTexture3D attach a selected mipmap level or image of a texture object as one of the logical buffers of the framebuffer object currently bound to target​. target​ must be GL_DRAW_FRAMEBUFFER, GL_READ_FRAMEBUFFER, or GL_FRAMEBUFFER. GL_FRAMEBUFFER is equivalent to GL_DRAW_FRAMEBUFFER.

attachment​ specifies the logical attachment of the framebuffer and must be GL_COLOR_ATTACHMENTi, GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT or GL_DEPTH_STENCIL_ATTACHMENT. i in GL_COLOR_ATTACHMENTi may range from zero to the value of GL_MAX_COLOR_ATTACHMENTS - 1. Attaching a level of a texture to GL_DEPTH_STENCIL_ATTACHMENT is equivalent to attaching that level to both the GL_DEPTH_ATTACHMENTand the GL_STENCIL_ATTACHMENT attachment points simultaneously.

textarget​ specifies what type of texture is named by texture​, and for cube map textures, specifies the face that is to be attached. If texture​ is not zero, it must be the name of an existing texture with type textarget​, unless it is a cube map texture, in which case textarget​ must be GL_TEXTURE_CUBE_MAP_POSITIVE_XGL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

If texture​ is non-zero, the specified level​ of the texture object named texture​ is attached to the framebuffer attachment point named by attachment​. For glFramebufferTexture1D, glFramebufferTexture2D, and glFramebufferTexture3D, texture​ must be zero or the name of an existing texture with a target of textarget​, or texture​ must be the name of an existing cube-map texture and textarget​ must be one of GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

If textarget​ is GL_TEXTURE_RECTANGLE, GL_TEXTURE_2D_MULTISAMPLE, or GL_TEXTURE_2D_MULTISAMPLE_ARRAY, then level​ must be zero. If textarget​ is GL_TEXTURE_3D, then level must be greater than or equal to zero and less than or equal to log2 of the value of GL_MAX_3D_TEXTURE_SIZE. If textarget​ is one of GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, then level​ must be greater than or equal to zero and less than or equal to log2 of the value of GL_MAX_CUBE_MAP_TEXTURE_SIZE. For all other values of textarget​, level​ must be greater than or equal to zero and no larger than log2 of the value of GL_MAX_TEXTURE_SIZE.

layer​ specifies the layer of a 2-dimensional image within a 3-dimensional texture.

For glFramebufferTexture1D, if texture​ is not zero, then textarget​ must be GL_TEXTURE_1D. For glFramebufferTexture2D, if texture​ is not zero, textarget​ must be one of GL_TEXTURE_2D, GL_TEXTURE_RECTANGLE, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_TEXTURE_2D_MULTISAMPLE. For glFramebufferTexture3D, if texture​ is not zero, then textarget​ must be GL_TEXTURE_3D.

Notes

glFramebufferTexture is available only if the GL version is 3.2 or greater.

Errors

GL_INVALID_ENUM is generated if target​ is not one of the accepted tokens.

GL_INVALID_ENUM is generated if renderbuffertarget​ is not GL_RENDERBUFFER.

GL_INVALID_OPERATION is generated if zero is bound to target​.

GL_INVALID_OPERATION is generated if textarget​ and texture​ are not compatible.