glFramebufferTexture2D - OpenGL ES 3.2 Reference Pages

## Name

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, 2D multisample 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`, or an existing two dimensional multisample texture with `textarget` set to `GL_TEXTURE_2D_MULTISAMPLE`, 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`. If `textarget` is `GL_TEXTURE_2D_MULTISAMPLE`, `level` must be equal to zero.

## Errors

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

`GL_INVALID_ENUM` is generated if `attachment` is not one of the attachment points listed above.

`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

| OpenGL ES API Version
--- | ---
Function Name | 2.0 | 3.0 | 3.1 | 3.2
glFramebufferTexture2D | ✔ | ✔ | ✔ | ✔

## See Also

glGenFramebuffers, glBindFramebuffer, glGenRenderbuffers, glFramebufferRenderbuffer, glFramebufferTextureLayer,

## Copyright

Copyright © 2010-2015 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/.