next up previous contents
Next: 13.2 Colors and Color Up: 13.1 Introduction Previous: 13.1.4 The Imaging Subset   Contents


13.1.5 Pixel Buffers

Pixel buffers (Pbuffers for short) are additional non-visible rendering buffers for an OpenGL renderer. The format for the color buffers and the types and sizes of any associated ancillary buffers are described similarly to the way GLX visuals are described using the GLX extension or pixel formats are described using the WGL extension. In the GLX extension, GLX visual descriptions are superseded by a newer FBconfig description which uniformly describes both visible and non-visible framebuffer resources.

Pbuffers are useful for computing and storing the results of intermediate rendering steps. The contents of a Pbuffer are transferred to a visible buffer or vice-versa using the glxMakeCurrentRead() command to attach separate and distinct readable and writable buffers to the rendering context. Commands that read data from a buffer such as glCopyPixels() and glReadPixels() take source data from the currently bound read buffer and commands that generate fragments write them to the currently bound write buffer. Since Pbuffers may have ancillary buffers, it is possible for Pbuffers to store copies of the color, depth, and stencil buffers and efficiently transfer them back to the visible buffer and associated ancillary buffers.

Pixel buffers and glxMakeCurrentRead() were originally implemented as the SGI_make_current_read, SGIX_fbconfig, and SGIX_pbuffer GLX extensions and were added to the GLX standard as part of the GLX 1.3 specification. Pbuffers and MakeCurrentRead functionality are available on the Windows platforms on implementations that support the WGL_EXT_make_current_read and WGL_EXT_pbuffer extensions. At the time of writing these extensions are supported by Intergraph and Silicon Graphics.


next up previous contents
Next: 13.2 Colors and Color Up: 13.1 Introduction Previous: 13.1.4 The Imaging Subset   Contents
2001-01-10