rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man4 / glBindFragDataLocation.xml
diff --git a/upstream-doc/man4/glBindFragDataLocation.xml b/upstream-doc/man4/glBindFragDataLocation.xml
new file mode 100644 (file)
index 0000000..ecfe527
--- /dev/null
@@ -0,0 +1,127 @@
+<?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="glBindFragDataLocation">
+    <refmeta>
+        <refmetainfo>
+            <copyright>
+                <year>2010</year>
+                <holder>Khronos Group</holder>
+            </copyright>
+        </refmetainfo>
+        <refentrytitle>glBindFragDataLocation</refentrytitle>
+        <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+        <refname>glBindFragDataLocation</refname>
+        <refpurpose>bind a user-defined varying out variable to a fragment shader color number</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv><title>C Specification</title>
+        <funcsynopsis>
+            <funcprototype>
+                <funcdef>void <function>glBindFragDataLocation</function></funcdef>
+                <paramdef>GLuint <parameter>program</parameter></paramdef>
+                <paramdef>GLuint <parameter>colorNumber</parameter></paramdef>
+                <paramdef>const char * <parameter>name</parameter></paramdef>
+            </funcprototype>
+        </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 id="parameters"><title>Parameters</title>
+        <variablelist>
+        <varlistentry>
+            <term><parameter>program</parameter></term>
+            <listitem>
+                <para>
+                    The name of the program containing varying out variable whose binding to modify
+                </para>
+            </listitem>
+        </varlistentry>
+        <varlistentry>
+            <term><parameter>colorNumber</parameter></term>
+            <listitem>
+                <para>
+                    The color number to bind the user-defined varying out variable to
+                </para>
+            </listitem>
+        </varlistentry>
+        <varlistentry>
+            <term><parameter>name</parameter></term>
+            <listitem>
+                <para>
+                    The name of the user-defined varying out variable whose binding to modify
+                </para>
+            </listitem>
+        </varlistentry>
+        </variablelist>
+    </refsect1>
+    <refsect1 id="description"><title>Description</title>
+        <para>
+            <function>glBindFragDataLocation</function> explicitly specifies the binding of the user-defined varying out variable
+            <parameter>name</parameter> to fragment shader color number <parameter>colorNumber</parameter> for program
+            <parameter>program</parameter>. If <parameter>name</parameter> was bound previously, its assigned binding is replaced
+            with <parameter>colorNumber</parameter>. <parameter>name</parameter> must be a null-terminated string. <parameter>colorNumber</parameter>
+            must be less than <constant>GL_MAX_DRAW_BUFFERS</constant>.
+        </para>
+        <para>
+            The bindings specified by <function>glBindFragDataLocation</function> have no effect until <parameter>program</parameter>
+            is next linked. Bindings may be specified at any time after <parameter>program</parameter> has been created. Specifically,
+            they may be specified before shader objects are attached to the program. Therefore, any name may be specified in <parameter>name</parameter>,
+            including a name that is never used as a varying out variable in any fragment shader object. Names beginning with <constant>gl_</constant> are
+            reserved by the GL.
+        </para>
+        <para>
+            In addition to the errors generated by <function>glBindFragDataLocation</function>, the
+            program <parameter>program</parameter> will fail to link if:
+            <itemizedlist>
+                <listitem>
+                    <para>
+                        The number of active outputs is greater than the value <constant>GL_MAX_DRAW_BUFFERS</constant>.
+                    </para>
+                </listitem>
+                <listitem>
+                    <para>
+                        More than one varying out variable is bound to the same color number.
+                    </para>
+                </listitem>
+            </itemizedlist>
+        </para>
+    </refsect1>
+    <refsect1 id="notes"><title>Notes</title>
+        <para>
+            Varying out varyings may have indexed locations assigned explicitly in the shader text using a <code>location</code>
+            layout qualifier. If a shader statically assigns a location to a varying out variable in the shader text,
+            that location is used and any location assigned with <function>glBindFragDataLocation</function> is ignored.
+        </para>
+    </refsect1>
+    <refsect1 id="errors"><title>Errors</title>
+        <para>
+            <constant>GL_INVALID_VALUE</constant> is generated if <parameter>colorNumber</parameter> is greater than or equal to <constant>GL_MAX_DRAW_BUFFERS</constant>.
+        </para>
+        <para>
+            <constant>GL_INVALID_OPERATION</constant> is generated if <parameter>name</parameter> starts with the reserved <constant>gl_</constant> prefix.
+        </para>
+        <para>
+            <constant>GL_INVALID_OPERATION</constant> is generated if <function>program</function> is not the name of a program object.
+        </para>
+    </refsect1>
+    <refsect1 id="associatedgets"><title>Associated Gets</title>
+        <para>
+            <citerefentry><refentrytitle>glGetFragDataLocation</refentrytitle></citerefentry> with a valid program object
+            and the the name of a user-defined varying out variable
+        </para>
+    </refsect1>
+    <refsect1 id="seealso"><title>See Also</title>
+        <para>
+            <citerefentry><refentrytitle>glCreateProgram</refentrytitle></citerefentry>,
+            <citerefentry><refentrytitle>glGetFragDataLocation</refentrytitle></citerefentry>
+        </para>
+    </refsect1>
+    <refsect1 id="Copyright"><title>Copyright</title>
+        <para>
+            Copyright <trademark class="copyright"></trademark> 2010 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.
+            <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.
+        </para>
+    </refsect1>
+</refentry>