2013
Khronos Group
glInvalidateSubFramebuffer
3G

# glInvalidateSubFramebuffer

invalidate the content of a region of some or all of a framebuffer object's attachments

## C Specification

                    void glInvalidateSubFramebuffer
                    GLenum target
                    GLsizei numAttachments
                    const GLenum * attachments
                    GLint x
                    GLint y
                    GLint width
                    GLint height

## Parameters

`target`

  The target to which the framebuffer is attached. `target` must be `GL_FRAMEBUFFER`, `GL_DRAW_FRAMEBUFFER`, or `GL_READ_FRAMEBUFFER`.

`numAttachments`

  The number of entries in the `attachments` array.

`attachments`

  The address of an array identifying the attachments to be invalidated.

`x`

  The X offset of the region to be invalidated.

`y`

  The Y offset of the region to be invalidated.

`width`

  The width of the region to be invalidated.

`height`

  The height of the region to be invalidated.

## Description

`glInvalidateSubFramebuffer` invalidates the content of a region of a specified set of attachments of a framebuffer. The framebuffer whose content to invalidate is indicated by setting `target` to the target to which it is bound. `target` may be `GL_FRAMEBUFFER`, `GL_READ_FRAMEBUFFER` or `GL_DRAW_FRAMEBUFFER`. `GL_FRAMEBUFFER` is treated as if it were `GL_DRAW_FRAMEBUFFER`.

A region within a subset of the framebuffer's attachments may be invalidated. This set of attachments are specified in an array whose address is given by `attachments` and which contains `numAttachments` elements. The elements of `attachments` must be `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. Furthermore, if the default framebuffer is bound to `target`, then `attachments` may contain `GL_FRONT_LEFT`, `GL_FRONT_RIGHT`, `GL_BACK_LEFT`, `GL_BACK_RIGHT`, `GL_AUX` i, `GL_ACCUM`, `GL_COLOR`, `GL_DEPTH`, or `GL_STENCIL`, identifying that specific buffer. `GL_COLOR`, is treated as `GL_BACK_LEFT` for a double-buffered context and `GL_FRONT_LEFT` for a single-buffered context.

The region of the framebuffer attachments to be invalidated is specified by `x`, `y`, `width` and `height` where `x` and `y` give the offset from the origin (with lower-left corner at (0, 0)) and `width` and `height` give the size. Any pixels lying outside of the window allocated to the current GL context, or outside of the attachments of the currently bound framebuffer object, are ignored. After `glInvalidateFramebuffer` is executed, the contents of the specified region of the specified attachments become undefined.

## Errors

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

`GL_INVALID_ENUM` is generated if any element of `attachments` is not one of the accepted framebuffer attachment tokens.

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

## Associated Gets

glGet with argument `GL_MAX_COLOR_ATTACHMENTS`

## See Also

glInvalidateTexSubImage, glInvalidateTexImage, glInvalidateBufferSubData, glInvalidateBufferData, glInvalidateFramebuffer.

## Copyright

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