Opentk/Source/Bind/Specifications/Docs/glXCreatePbuffer.xml
2009-03-08 00:46:58 +00:00

174 lines
8.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
"http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
<refentry id="glXCreatePbuffer">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glXCreatePbuffer</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glXCreatePbuffer</refname>
<refpurpose>create an off-screen rendering area</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>GLXPbuffer <function>glXCreatePbuffer</function></funcdef>
<paramdef>Display * <parameter>dpy</parameter></paramdef>
<paramdef>GLXFBConfig <parameter>config</parameter></paramdef>
<paramdef>const int * <parameter>attrib_list</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>dpy</parameter></term>
<listitem>
<para>
Specifies the connection to the X server.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>config</parameter></term>
<listitem>
<para>
Specifies a GLXFBConfig structure with the desired attributes for the
window.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>attrib_list</parameter></term>
<listitem>
<para>
Specifies a list of attribute value pairs, which must be terminated with
<constant>None</constant> or <constant>NULL</constant>. Accepted attributes are
<constant>GLX_PBUFFER_WIDTH</constant>, <constant>GLX_PBUFFER_HEIGHT</constant>,
<constant>GLX_PRESERVED_CONTENTS</constant>, and <constant>GLX_LARGEST_PBUFFER</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glXCreatePbuffer</function> creates an off-screen rendering area and returns its XID.
Any GLX rendering context that was created with respect to <parameter>config</parameter>
can be used to render into this window.
Use <citerefentry><refentrytitle>glXMakeContextCurrent</refentrytitle></citerefentry> to associate the rendering area with a GLX
rendering context.
</para>
<para>
The accepted attributes for a GLXPbuffer are:
</para>
<variablelist>
<varlistentry>
<term><constant>GLX_PBUFFER_WIDTH</constant></term>
<listitem>
<para>
Specify the pixel width of the requested GLXPbuffer. The default value
is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GLX_PBUFFER_HEIGHT</constant></term>
<listitem>
<para>
Specify the pixel height of the requested GLXPbuffer. The default value
is 0.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GLX_LARGEST_PBUFFER</constant></term>
<listitem>
<para>
Specify to obtain the largest available pixel buffer, if the requested
allocation would have failed. The width and height of the allocated
pixel buffer will never exceed the specified <constant>GLX_PBUFFER_WIDTH</constant> or
<constant>GLX_PBUFFER_HEIGHT</constant>, respectively. Use <citerefentry><refentrytitle>glXQueryDrawable</refentrytitle></citerefentry> to
retrieve the dimensions of the allocated pixel buffer. The default value is
<constant>False</constant>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><constant>GLX_PRESERVED_CONTENTS</constant></term>
<listitem>
<para>
Specify if the contents of the pixel buffer should be preserved when a
resource conflict occurs. If set to <constant>False</constant>, the contents of the
pixel buffer may be lost at any time. If set to <constant>True</constant>, or not
specified in <parameter>attrib_list</parameter>, then the contents of the pixel buffer will be preserved
(most likely by copying the contents into main system memory from the
frame buffer). In either case, the client can register (using
<citerefentry><refentrytitle>glXSelectEvent</refentrytitle></citerefentry>, to receive
pixel buffer clobber events that are generated when the pbuffer contents have
been preserved or damaged.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
GLXPbuffers contain the color and ancillary buffers specified by
<parameter>config</parameter>. It is possible to create a pixel buffer with back buffers and
to swap those buffers using <citerefentry><refentrytitle>glXSwapBuffers</refentrytitle></citerefentry>.
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
<function>glXCreatePbuffer</function> is available only if the GLX version is 1.3 or greater.
</para>
<para>
If the GLX version is 1.1 or 1.0, the GL version must be 1.0.
If the GLX version is 1.2, then the GL version must be 1.1.
If the GLX version is 1.3, then the GL version must be 1.2.
</para>
<para>
GLXPbuffers are allocated from frame buffer resources; applications
should consider deallocating them when they are not in use.
</para>
</refsect1>
<refsect1 id="errors"><title>Errors</title>
<para>
<constant>BadAlloc</constant> is generated if there are insufficient resources to
allocate the requested GLXPbuffer.
</para>
<para>
<constant>GLXBadFBConfig</constant> is generated if <parameter>config</parameter> is not a valid
GLXFBConfig.
</para>
<para>
<constant>BadMatch</constant> is generated if <parameter>config</parameter> does not support rendering to
pixel buffers (e.g., <constant>GLX_DRAWABLE_TYPE</constant> does not contain
<constant>GLX_PBUFFER_BIT</constant>).
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glXChooseFBConfig</refentrytitle></citerefentry>,
<function>glXCreatePbuffer</function>,
<citerefentry><refentrytitle>glXMakeContextCurrent</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glXSelectEvent</refentrytitle></citerefentry>
</para>
</refsect1>
<refsect1 id="Copyright"><title>Copyright</title>
<para>
Copyright <trademark class="copyright"></trademark> 1991-2006
Silicon Graphics, Inc. This document is licensed under the SGI
Free Software B License. For details, see
<ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
</para>
</refsect1>
</refentry>