<?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="glPrimitiveRestartIndex">
    <refmeta>
        <refmetainfo>
            <copyright>
                <year>2010</year>
                <holder>Khronos Group</holder>
            </copyright>
        </refmetainfo>
        <refentrytitle>glPrimitiveRestartIndex</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glPrimitiveRestartIndex</refname>
        <refpurpose>specify the primitive restart index</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glPrimitiveRestartIndex</function></funcdef>
                <paramdef>GLuint <parameter>index</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>index</parameter></term>
            <listitem>
                <para>
                    Specifies the value to be interpreted as the primitive restart index.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
        <para>
            <function>glPrimitiveRestartIndex</function> specifies a vertex array element that is treated specially when
            primitive restarting is enabled. This is known as the primitive restart index.
        </para>
        <para>
            When one of the <function>Draw*</function> commands transfers a set of generic attribute array elements to
            the GL, if the index within the vertex arrays corresponding to that set is equal to the primitive restart
            index, then the GL does not process those elements as a vertex. Instead, it is as if the drawing command
            ended with the immediately preceding transfer, and another drawing command is immediately started with
            the same parameters, but only transferring the immediately following element through the end of the
            originally specified elements.
        </para>
        <para>
            When either <citerefentry><refentrytitle>glDrawElementsBaseVertex</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDrawElementsInstancedBaseVertex</refentrytitle></citerefentry> or
            <citerefentry><refentrytitle>glMultiDrawElementsBaseVertex</refentrytitle></citerefentry> is used, the primitive restart
            comparison occurs before the basevertex offset is added to the array index.
        </para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            <function>glPrimitiveRestartIndex</function> is available only if the GL version is 3.1 or greater.
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDrawElementsBaseVertex</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>glDrawElementsInstancedBaseVertex</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>
