2012 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_ATTACHMENTi`, 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_AUXi`, `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_ATTACHMENTi` 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 2012 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/.