Portal:OpenGL Objects/Framebuffer Objects
A Framebuffer Object (FBO) is a container object that stores a series of images that can, as a collection, be used as a Framebuffer. Images can be added to or removed from an FBO as needed. Images can come from Texture objects or Renderbuffer Objects. In this way, textures can be render targets.
Rendering to an image in a texture while reading from the same image is not allowed by the OpenGL memory model. Violating this constraint yields undefined behavior.