rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man4 / glCreateShader.xml
diff --git a/upstream-doc/man4/glCreateShader.xml b/upstream-doc/man4/glCreateShader.xml
new file mode 100644 (file)
index 0000000..b41d324
--- /dev/null
@@ -0,0 +1,110 @@
+<?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="glCreateShader">
+    <refmeta>
+       <refentrytitle>glCreateShader</refentrytitle>
+       <manvolnum>3G</manvolnum>
+    </refmeta>
+    <refnamediv>
+       <refname>glCreateShader</refname>
+       <refpurpose>Creates a shader object</refpurpose>
+    </refnamediv>
+    <refsynopsisdiv><title>C Specification</title>
+       <funcsynopsis>
+           <funcprototype>
+               <funcdef>GLuint <function>glCreateShader</function></funcdef>
+               <paramdef>GLenum <parameter>shaderType</parameter></paramdef>
+           </funcprototype>
+       </funcsynopsis>
+    </refsynopsisdiv>
+    <refsect1 id="parameters"><title>Parameters</title>
+       <variablelist>
+           <varlistentry>
+               <term><parameter>shaderType</parameter></term>
+               <listitem>
+                   <para>Specifies the type of shader to be created.
+                   Must be one of <constant>GL_VERTEX_SHADER</constant>,
+                   <constant>GL_TESS_CONTROL_SHADER</constant>,
+                   <constant>GL_TESS_EVALUATION_SHADER</constant>,
+                   <constant>GL_GEOMETRY_SHADER</constant>,
+                   or <constant>GL_FRAGMENT_SHADER</constant>.</para>
+               </listitem>
+           </varlistentry>
+       </variablelist>
+    </refsect1>
+    <refsect1 id="description"><title>Description</title>
+       <para><function>glCreateShader</function> creates an empty
+       shader object and returns a non-zero value by which it can be
+       referenced. A shader object is used to maintain the source code
+       strings that define a shader. <parameter>shaderType</parameter>
+       indicates the type of shader to be created. Five types of shader
+       are supported. A shader of type
+       <constant>GL_VERTEX_SHADER</constant> is a shader that is
+       intended to run on the programmable vertex processor.
+       A shader of type <constant>GL_TESS_CONTROL_SHADER</constant> is a shader that
+       is intended to run on the programmable tessellation processor in the control stage.
+       A shader of type <constant>GL_TESS_EVALUATION_SHADER</constant> is a shader that
+       is intended to run on the programmable tessellation processor in the evaluation stage.
+       A shader of type
+       <constant>GL_GEOMETRY_SHADER</constant> is a shader that is intended to
+       run on the programmable geometry processor. A shader of
+       type <constant>GL_FRAGMENT_SHADER</constant> is a shader that is
+       intended to run on the programmable fragment processor.</para>
+
+       <para>When created, a shader object's
+       <constant>GL_SHADER_TYPE</constant> parameter is set to either
+       <constant>GL_VERTEX_SHADER</constant>, <constant>GL_TESS_CONTROL_SHADER</constant>,
+       <constant>GL_TESS_EVALUATION_SHADER</constant>, <constant>GL_GEOMETRY_SHADER</constant>
+       or <constant>GL_FRAGMENT_SHADER</constant>, depending on the value
+       of <parameter>shaderType</parameter>.</para>
+    </refsect1>
+    <refsect1 id="notes"><title>Notes</title>
+       <para>Like buffer and texture objects, the name space for
+       shader objects may be shared across a set of contexts, as long
+       as the server sides of the contexts share the same address
+       space. If the name space is shared across contexts, any attached
+       objects and the data associated with those attached objects are
+       shared as well.</para>
+
+       <para>Applications are responsible for providing the
+       synchronization across API calls when objects are accessed from
+       different execution threads.</para>
+    </refsect1>
+    <refsect1 id="errors"><title>Errors</title>
+       <para>This function returns 0 if an error occurs creating the
+       shader object.</para>
+
+       <para><constant>GL_INVALID_ENUM</constant> is generated if
+       <parameter>shaderType</parameter> is not an accepted value.</para>
+
+    </refsect1>
+    <refsect1 id="associatedgets"><title>Associated Gets</title>
+       <para><citerefentry><refentrytitle>glGetShader</refentrytitle></citerefentry>
+       with a valid shader object and the parameter to be queried</para>
+
+       <para><citerefentry><refentrytitle>glGetShaderInfoLog</refentrytitle></citerefentry>
+       with a valid shader object</para>
+
+       <para><citerefentry><refentrytitle>glGetShaderSource</refentrytitle></citerefentry>
+       with a valid shader object</para>
+
+       <para><citerefentry><refentrytitle>glIsShader</refentrytitle></citerefentry></para>
+    </refsect1>
+    <refsect1 id="seealso"><title>See Also</title>
+       <para><citerefentry><refentrytitle>glAttachShader</refentrytitle></citerefentry>,
+       <citerefentry><refentrytitle>glCompileShader</refentrytitle></citerefentry>,
+       <citerefentry><refentrytitle>glDeleteShader</refentrytitle></citerefentry>,
+       <citerefentry><refentrytitle>glDetachShader</refentrytitle></citerefentry>,
+       <citerefentry><refentrytitle>glShaderSource</refentrytitle></citerefentry>
+       </para>
+    </refsect1>
+    <refsect1 id="Copyright"><title>Copyright</title>
+        <para>
+            Copyright <trademark class="copyright"></trademark> 2003-2005 3Dlabs Inc. Ltd. 
+            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>