<HTML>

<TITLE>PBuffer Rendering</TITLE>

<link rel="stylesheet" type="text/css" href="mesa.css"></head>

<BODY>

<H1>PBuffer Rendering</H1>

<p>
Basically, FBconfigs and PBuffers allow you to do off-screen rendering
with OpenGL.  The OSMesa interface does basically the same thing, but
fbconfigs and pbuffers are supported by more vendors.
PBuffer rendering may also be hardware accelerated.
</p>

<p>
PBuffers are getting more use nowadays, though they've actually been
around for a long time on IRIX systems and other workstations.
</p>

<p>
The
<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/fbconfig.txt"
target="_parent">GL_SGIX_fbconfig</a>
and
<a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/pbuffer.txt"
target="_parent">
GL_SGIX_pbuffer</a> extensions describe the functionality.
More recently, these extensions have been promoted to ARB extensions (on
Windows at least).
</p>

<p>
The Mesa/progs/xdemos/ directory has some useful code for working
with pbuffers:
</p>

<ul>
<li><b>pbinfo.c</b> - like glxinfo, it prints a list of available
    fbconfigs and whether each supports pbuffers.
<li><b>pbutil.c</b> - a few utility functions for dealing with
    fbconfigs and pbuffers.
<li><b>pbdemo.c</b> - a demonstration of off-screen rendering with pbuffers.
</ul>

<p>
Mesa 4.1 and later support GL_SGIX_fbconfig and GL_SGIX_pbuffer (software
rendering only).
</p>

</BODY>
</HTML>