2010-2014
Khronos Group
glFramebufferTexture2D
3G

# glFramebufferTexture2D

attach a level of a texture object as a logical buffer to the currently bound framebuffer object

## C Specification

                    void glFramebufferTexture2D
                    GLenum target
                    GLenum attachment
                    GLenum textarget
                    GLuint texture
                    GLint level

## Parameters

`target`

  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_ATTACHMENT` i, `GL_DEPTH_ATTACHMENT`, `GL_STENCIL_ATTACHMENT` or `GL_DEPTH_STENCIL_ATTACHMENT`.

`textarget`

  Specifies a 2D texture target, 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

`glFramebufferTexture2D` attaches 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_ATTACHMENT` i, `GL_DEPTH_ATTACHMENT`, `GL_STENCIL_ATTACHMENT` or `GL_DEPTH_STENCIL_ATTACHMENT`. i in `GL_COLOR_ATTACHMENT` i 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_ATTACHMENT` and 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 two dimensional texture with `textarget` set to `GL_TEXTURE_2D`, unless it is a cube map texture, in which case `textarget` must be `GL_TEXTURE_CUBE_MAP_POSITIVE_X` `GL_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`.

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`. If `textarget` is `GL_TEXTURE_2D`, `level` must be greater than or equal to zero and no larger than log2 of the value of `GL_MAX_TEXTURE_SIZE`.

## 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.

## API Version Support

glFramebufferTexture2D

## See Also

glGenFramebuffers, glBindFramebuffer, glGenRenderbuffers, glFramebufferRenderbuffer, glFramebufferTextureLayer,

## Copyright

Copyright 2010-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.