rename upstream-man-pages to upstream-doc
[clinton/guile-figl.git] / upstream-doc / man3 / glGetActiveUniformsiv.xml
diff --git a/upstream-doc/man3/glGetActiveUniformsiv.xml b/upstream-doc/man3/glGetActiveUniformsiv.xml
new file mode 100644 (file)
index 0000000..3b5e551
--- /dev/null
@@ -0,0 +1,673 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"\r
+          "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">\r
+<refentry id="glGetActiveUniformsiv">\r
+    <refmeta>\r
+    <refentrytitle>glGetActiveUniformsiv</refentrytitle>\r
+    <manvolnum>3G</manvolnum>\r
+    </refmeta>\r
+    <refnamediv>\r
+    <refname>glGetActiveUniformsiv</refname>\r
+    <refpurpose>Returns information about several active uniform variables for the specified program object</refpurpose>\r
+    </refnamediv>\r
+    <refsynopsisdiv><title>C Specification</title>\r
+    <funcsynopsis>\r
+        <funcprototype>\r
+        <funcdef>void <function>glGetActiveUniformsiv</function></funcdef>\r
+        <paramdef>GLuint <parameter>program</parameter></paramdef>\r
+        <paramdef>GLsizei <parameter>uniformCount</parameter></paramdef>\r
+        <paramdef>const GLuint *<parameter>uniformIndices</parameter></paramdef>\r
+        <paramdef>GLenum <parameter>pname</parameter></paramdef>\r
+        <paramdef>GLint *<parameter>params</parameter></paramdef>\r
+        </funcprototype>\r
+    </funcsynopsis>\r
+    </refsynopsisdiv>\r
+    <refsect1 id="parameters"><title>Parameters</title>\r
+    <variablelist>\r
+        <varlistentry>\r
+        <term><parameter>program</parameter></term>\r
+        <listitem>\r
+            <para>Specifies the program object to be queried.</para>\r
+        </listitem>\r
+        </varlistentry>\r
+        <varlistentry>\r
+        <term><parameter>uniformCount</parameter></term>\r
+        <listitem>\r
+            <para>Specifies both the number of elements in the array of indices <parameter>uniformIndices</parameter> and the\r
+            number of parameters written to <parameter>params</parameter> upon successful return.</para>\r
+        </listitem>\r
+        </varlistentry>\r
+        <varlistentry>\r
+        <term><parameter>uniformIndices</parameter></term>\r
+        <listitem>\r
+            <para>Specifies the address of an array of <parameter>uniformCount</parameter> integers containing the indices of\r
+            uniforms within <parameter>program</parameter> whose parameter <parameter>pname</parameter> pname.</para>\r
+        </listitem>\r
+        </varlistentry>\r
+        <varlistentry>\r
+        <term><parameter>pname</parameter></term>\r
+        <listitem>\r
+            <para>Specifies the property of the each uniform in <parameter>uniformIndices</parameter> that should be\r
+            written into the corresponding element of <parameter>params</parameter>.</para>\r
+        </listitem>\r
+        </varlistentry>\r
+        <varlistentry>\r
+        <term><parameter>params</parameter></term>\r
+        <listitem>\r
+            <para>Specifies the address of an array of <parameter>uniformCount</parameter> integers which are to\r
+            receive the value of <parameter>pname</parameter> for each uniform in <parameter>uniformIndices</parameter>.</para>\r
+        </listitem>\r
+        </varlistentry>\r
+    </variablelist>\r
+    </refsect1>\r
+    <refsect1 id="description"><title>Description</title>\r
+        <para>\r
+            <function>glGetActiveUniformsiv</function> queries the value of the parameter named <parameter>pname</parameter>\r
+            for each of the uniforms within <parameter>program</parameter> whose indices are specified in the array of\r
+            <parameter>uniformCount</parameter> unsigned integers <parameter>uniformIndices</parameter>. Upon success,\r
+            the value of the parameter for each uniform is written into the corresponding entry in the array whose\r
+            address is given in <parameter>params</parameter>. If an error is generated, nothing is written into\r
+            <parameter>params</parameter>.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_TYPE</constant>, then an array identifying the types\r
+            of uniforms specified by the corresponding array of <parameter>uniformIndices</parameter> is returned. The\r
+            returned types can be any of the values from the following table:\r
+        <informaltable frame="topbot">\r
+            <tgroup cols="2" align="left">\r
+                <colspec colwidth="1.1*" />\r
+                <colspec colwidth="1*" />\r
+                <thead>\r
+                    <row>\r
+                        <entry rowsep="1" align="left"><emphasis role="bold">\r
+                        Returned Symbolic Contant\r
+                        </emphasis></entry>\r
+                        <entry rowsep="1" align="left"><emphasis role="bold">\r
+                        Shader Uniform Type\r
+                        </emphasis></entry>\r
+                    </row>\r
+                </thead>\r
+                <tbody>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>float</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_VEC2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>vec2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_VEC3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>vec3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_VEC4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>vec4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>int</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_VEC2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>ivec2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_VEC3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>ivec3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_VEC4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>ivec4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>unsigned int</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_VEC2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>uvec2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_VEC3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>uvec3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_VEC4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>uvec4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_BOOL</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>bool</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_BOOL_VEC2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>bvec2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_BOOL_VEC3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>bvec3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_BOOL_VEC4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>bvec4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT2x3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat2x3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT2x4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat2x4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT3x2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat3x2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT3x4</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat3x4</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT4x2</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat4x2</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_FLOAT_MAT4x3</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>mat4x3</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_1D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler1D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_3D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler3D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_CUBE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>samplerCube</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_1D_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler1DShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_1D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler1DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_1D_ARRAY_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler1DArrayShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_ARRAY_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DArrayShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_MULTISAMPLE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DMS</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_MULTISAMPLE_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DMSArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_CUBE_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>samplerCubeShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_BUFFER</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>samplerBuffer</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_RECT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DRect</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_SAMPLER_2D_RECT_SHADOW</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>sampler2DRectShadow</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_1D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler1D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_2D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler2D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_3D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler3D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_CUBE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isamplerCube</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_1D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler1DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_2D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler2DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_2D_MULTISAMPLE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler2DMS</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler2DMSArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_BUFFER</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isamplerBuffer</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_INT_SAMPLER_2D_RECT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>isampler2DRect</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_1D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler1D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_2D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_3D</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler3D</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_CUBE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usamplerCube</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_1D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_2D_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2DArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2DMS</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2DMSArray</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_BUFFER</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usamplerBuffer</constant>\r
+                        </entry>\r
+                    </row>\r
+                    <row>\r
+                        <entry align="left">\r
+                            <constant>GL_UNSIGNED_INT_SAMPLER_2D_RECT</constant>\r
+                        </entry>\r
+                        <entry align="left">\r
+                            <constant>usampler2DRect</constant>\r
+                        </entry>\r
+                    </row>\r
+                </tbody>\r
+            </tgroup>\r
+        </informaltable>\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_SIZE</constant>, then an array identifying the\r
+            size of the uniforms specified by the corresponding array of <parameter>uniformIndices</parameter> is\r
+            returned. The sizes returned are in units of the type returned by a query of <constant>GL_UNIFORM_TYPE</constant>.\r
+            For active uniforms that are arrays, the size is the number of active elements in the array;\r
+            for all other uniforms, the size is one.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_NAME_LENGTH</constant>, then an array identifying the\r
+            length, including the terminating null character, of the uniform name strings specified by the corresponding\r
+            array of <parameter>uniformIndices</parameter> is returned.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_BLOCK_INDEX</constant>, then an array identifying the\r
+            the uniform block index of each of the uniforms specified by the corresponding array of <parameter>uniformIndices</parameter>\r
+            is returned. The uniform block index of a uniform associated with the default uniform block is -1.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_OFFSET</constant>, then an array of uniform buffer\r
+            offsets is returned. For uniforms in a named uniform block, the returned value will be its offset, in basic\r
+            machine units, relative to the beginning of the uniform block in the buffer object data store. For uniforms\r
+            in the default uniform block, -1 will be returned.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_ARRAY_STRIDE</constant>, then an array identifying the\r
+            stride between elements, in basic machine units, of each of the uniforms specified by the corresponding array of\r
+            <parameter>uniformIndices</parameter> is returned.  The stride of a uniform associated with the default uniform\r
+            block is -1.  Note that this information only makes sense for uniforms that are arrays. For uniforms that are\r
+            not arrays, but are declared in a named uniform block, an array stride of zero is returned.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_MATRIX_STRIDE</constant>, then an array identifying the stride\r
+            between columns of a column-major matrix or rows of a row-major matrix, in basic machine units, of each of the uniforms\r
+            specified by the corresponding array of <parameter>uniformIndices</parameter> is returned. The matrix stride of a\r
+            uniform associated with the default uniform block is -1. Note that this information only makes sense for uniforms\r
+            that are matrices. For uniforms that are not matrices, but are declared in a named uniform block, a matrix stride of\r
+            zero is returned.\r
+        </para>\r
+        <para>\r
+            If <parameter>pname</parameter> is <constant>GL_UNIFORM_IS_ROW_MAJOR</constant>, then an array identifying whether each\r
+            of the uniforms specified by the corresponding array of <parameter>uniformIndices</parameter> is a row-major matrix or not is returned. A\r
+            value of one indicates a row-major matrix, and a value of zero indicates a column-major matrix, a matrix in the default\r
+            uniform block, or a non-matrix.\r
+        </para>\r
+    </refsect1>\r
+    <refsect1 id="errors"><title>Errors</title>\r
+    <para><constant>GL_INVALID_VALUE</constant> is generated if\r
+    <parameter>program</parameter> is not a value generated by\r
+    OpenGL.</para>\r
+\r
+    <para><constant>GL_INVALID_OPERATION</constant> is generated if\r
+    <parameter>program</parameter> is not a program object.</para>\r
+\r
+    <para><constant>GL_INVALID_VALUE</constant> is generated if\r
+    <parameter>uniformCount</parameter> is greater than or equal to the\r
+    value of <constant>GL_ACTIVE_UNIFORMS</constant> for\r
+    <parameter>program</parameter>.</para>\r
+\r
+    <para><constant>GL_INVALID_ENUM</constant> is generated if <parameter>pname</parameter>\r
+    is not an accepted token.</para>\r
+    </refsect1>\r
+    <refsect1 id="associatedgets"><title>Associated Gets</title>\r
+    <para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>\r
+    with argument <constant>GL_MAX_VERTEX_UNIFORM_COMPONENTS</constant>,\r
+    <constant>GL_MAX_GEOMETRY_UNIFORM_COMPONENTS</constant>,\r
+    <constant>GL_MAX_FRAGMENT_UNIFORM_COMPONENTS</constant>, or\r
+    <constant>GL_MAX_COMBINED_UNIFORM_COMPONENTS</constant>.</para>\r
+\r
+    <para><citerefentry><refentrytitle>glGetProgram</refentrytitle></citerefentry>\r
+    with argument <constant>GL_ACTIVE_UNIFORMS</constant> or\r
+    <constant>GL_ACTIVE_UNIFORM_MAX_LENGTH</constant>.</para>\r
+\r
+    <para><citerefentry><refentrytitle>glIsProgram</refentrytitle></citerefentry></para>\r
+    </refsect1>\r
+    <refsect1 id="seealso"><title>See Also</title>\r
+    <para><citerefentry><refentrytitle>glGetUniform</refentrytitle></citerefentry>,\r
+    <citerefentry><refentrytitle>glGetActiveUniform</refentrytitle></citerefentry>,\r
+    <citerefentry><refentrytitle>glGetUniformLocation</refentrytitle></citerefentry>,\r
+    <citerefentry><refentrytitle>glLinkProgram</refentrytitle></citerefentry>,\r
+    <citerefentry><refentrytitle>glUniform</refentrytitle></citerefentry>,\r
+    <citerefentry><refentrytitle>glUseProgram</refentrytitle></citerefentry></para>\r
+    </refsect1>\r
+    <refsect1 id="Copyright"><title>Copyright</title>\r
+        <para>\r
+            Copyright <trademark class="copyright"></trademark> 2011 Khronos Group\r
+            This material may be distributed subject to the terms and conditions set forth in \r
+            the Open Publication License, v 1.0, 8 June 1999.\r
+            <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.\r
+        </para>\r
+    </refsect1>\r
+</refentry>\r