## Name

glInvalidateFramebuffer, glInvalidateNamedFramebufferData — invalidate the content of some or all of a framebuffer's attachments

## C Specification

`void glInvalidateFramebuffer(` | GLenum target,
| GLsizei numAttachments,
| const GLenum * attachments`)`;

`void glInvalidateNamedFramebufferData(` | GLuint framebuffer,
| GLsizei numAttachments,
| const GLenum *attachments`)`;

## Parameters

`target`

  Specifies the target to which the framebuffer object is attached for `glInvalidateFramebuffer`.

`framebuffer`

  Specifies the name of the framebuffer object for `glInvalidateNamedFramebufferData`.

`numAttachments`

  Specifies the number of entries in the `attachments` array.

`attachments`

  Specifies a pointer to an array identifying the attachments to be invalidated.

## Description

`glInvalidateFramebuffer` and `glInvalidateNamedFramebufferData` invalidate the entire contents of a specified set of attachments of a framebuffer.

For `glInvalidateFramebuffer`, the framebuffer object is that bound to `target`. `target` must be `GL_FRAMEBUFFER`, `GL_READ_FRAMEBUFFER` or `GL_DRAW_FRAMEBUFFER`. `GL_FRAMEBUFFER` is equivalent to `GL_DRAW_FRAMEBUFFER`. Default framebuffers may also be invalidated if bound to `target`.

For `glInvalidateNamedFramebufferData`, `framebuffer` is the name of the framebuffer object. If `framebuffer` is zero, the default draw framebuffer is affected.

The set of attachments whose contents are to be invalidated are specified in the `attachments` array, which contains `numAttachments` elements.

If the specified framebuffer is a framebuffer object, each element of `attachments` must be one of `GL_DEPTH_ATTACHMENT`, `GL_STENCIL_ATTACHMENT` `GL_DEPTH_STENCIL_ATTACHMENT`, or `GL_COLOR_ATTACHMENT` i, where i is between zero and the value of `GL_MAX_FRAMEBUFFER_ATTACHMENTS` minus one.

If the specified framebuffer is a default framebuffer, each element of `attachments` must be one of `GL_FRONT_LEFT`, `GL_FRONT_RIGHT`, `GL_BACK_LEFT`, `GL_BACK_RIGHT`, `GL_AUX` i, `GL_ACCUM`, `GL_COLOR`, `GL_DEPTH`, or `GL_STENCIL`. `GL_COLOR`, is treated as `GL_BACK_LEFT` for a double-buffered context and `GL_FRONT_LEFT` for a single-buffered context. The other attachments identify the corresponding specific buffer.

The entire contents of each specified attachment become undefined after execution of `glInvalidateFramebuffer` or `glInvalidateNamedFramebufferData`.

If the framebuffer object is not complete, `glInvalidateFramebuffer` and `glInvalidateNamedFramebufferData` may be ignored. This is not an error.

## Errors

`GL_INVALID_ENUM` is generated by `glInvalidateFramebuffer` if `target` is not one of the accepted framebuffer targets.

`GL_INVALID_OPERATION` is generated by `glInvalidateNamedFramebufferData` if `framebuffer` is not zero or the name of an existing framebuffer object.

`GL_INVALID_VALUE` is generated if `numAttachments` is negative.

`GL_INVALID_ENUM` is generated if any element of `attachments` is not one of the accepted framebuffer attachment points, as described above.

`GL_INVALID_OPERATION` is generated if element of `attachments` is `GL_COLOR_ATTACHMENT` m where m is greater than or equal to the value of `GL_MAX_COLOR_ATTACHMENTS`.

## Associated Gets

glGet with argument `GL_MAX_COLOR_ATTACHMENTS`

## Version Support

| OpenGL Version
--- | ---
Function / Feature Name | 2.0 | 2.1 | 3.0 | 3.1 | 3.2 | 3.3 | 4.0 | 4.1 | 4.2 | 4.3 | 4.4 | 4.5
`glInvalidateFramebuffer` | - | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔
`glInvalidateNamedFramebufferData` | - | - | - | - | - | - | - | - | - | - | - | ✔

## See Also

glInvalidateTexSubImage, glInvalidateTexImage, glInvalidateBufferSubData, glInvalidateBufferData, glInvalidateSubFramebuffer.

## Copyright

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