<!DOCTYPE refentry [ <!ENTITY % mathent SYSTEM "math.ent"> %mathent; ]>

<!-- Converted by db4-upgrade version 1.1 -->

<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="glVertexBindingDivisor">
    <info>
    <copyright>
      <year>2013-2014</year>

      <holder>Khronos Group</holder>
    </copyright>
  </info>

  <refmeta>
    <refentrytitle>glVertexBindingDivisor</refentrytitle>

    <manvolnum>3G</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>glVertexBindingDivisor</refname>

    <refname>glVertexArrayBindingDivisor</refname>

    <refpurpose>modify the rate at which generic vertex attributes
    advance</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <title>C Specification</title>

    <funcsynopsis>
      <funcprototype>
        <funcdef>void <function>glVertexBindingDivisor</function></funcdef>

        <paramdef>GLuint <parameter>bindingindex</parameter></paramdef>

        <paramdef>GLuint <parameter>divisor</parameter></paramdef>
      </funcprototype>

      <funcprototype>
        <funcdef>void <function>glVertexArrayBindingDivisor</function></funcdef>

        <paramdef>GLuint <parameter>vaobj</parameter></paramdef>

        <paramdef>GLuint <parameter>bindingindex</parameter></paramdef>

        <paramdef>GLuint <parameter>divisor</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1 xml:id="parameters">
    <title>Parameters</title>

    <variablelist>
      <varlistentry>
        <term><parameter>vaobj</parameter></term>

        <listitem>
          <para>Specifies the name of the vertex array object for
          <function>glVertexArrayBindingDivisor</function> function.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>bindingindex</parameter></term>

        <listitem>
          <para>The index of the binding whose divisor to modify.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>divisor</parameter></term>

        <listitem>
          <para>The new value for the instance step rate to apply.</para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1 xml:id="description">
    <title>Description</title>

    <para><function>glVertexBindingDivisor</function> and
    <function>glVertexArrayBindingDivisor</function> modify the rate at which
    generic vertex attributes advance when rendering multiple instances of
    primitives in a single draw command. If <parameter>divisor</parameter> is
    zero, the attributes using the buffer bound to
    <parameter>bindingindex</parameter> advance once per vertex. If
    <parameter>divisor</parameter> is non-zero, the attributes advance once
    per <parameter>divisor</parameter> instances of the set(s) of vertices
    being rendered. An attribute is referred to as
    <emphasis>instanced</emphasis> if the corresponding
    <parameter>divisor</parameter> value is non-zero.</para>

    <para><function>glVertexBindingDivisor</function> uses currently bound
    vertex array object , whereas
    <function>glVertexArrayBindingDivisor</function> updates state of the
    vertex array object with ID <parameter>vaobj</parameter>.</para>
  </refsect1>

  <refsect1 xml:id="errors">
    <title>Errors</title>

    <para><constant>GL_INVALID_VALUE</constant> is generated if
    <parameter>bindingindex</parameter> is greater than or equal to the value
    of <constant>GL_MAX_VERTEX_ATTRIB_BINDINGS</constant>.</para>

    <para><constant>GL_INVALID_OPERATION</constant> by
    <function>glVertexBindingDivisor</function> is generated if no vertex
    array object is bound.</para>

    <para><constant>GL_INVALID_OPERATION</constant> is generated by
    <function>glVertexArrayBindingDivisor</function> if
    <parameter>vaobj</parameter> is not the name of an existing vertex array
    object.</para>
  </refsect1>

  <refsect1 xml:id="associatedgets">
    <title>Associated Gets</title>

    <para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
        with arguments <constant>GL_MAX_VERTEX_ATTRIB_BINDINGS</constant>,
        <constant>GL_VERTEX_BINDING_DIVISOR</constant>.
    </para>

  </refsect1>
    <refsect1 xml:id="versions"><title>Version Support</title>
        <informaltable>
            <tgroup cols="13" align="left">
                <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apifunchead.xml" xpointer="xpointer(/*/*)"/>
                <tbody>
                    <row>
                        <entry><function>glVertexArrayBindingDivisor</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='45']/*)"/>
                    </row>
                    <row>
                        <entry><function>glVertexBindingDivisor</function></entry>
                        <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="apiversion.xml" xpointer="xpointer(/*/*[@role='43']/*)"/>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect1>

  <refsect1 xml:id="seealso">
    <title>See Also</title>

    <para>
        <citerefentry><refentrytitle>glBindVertexBuffer</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glVertexAttribBinding</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glVertexBindingDivisor</refentrytitle></citerefentry>,
        <citerefentry><refentrytitle>glVertexAttribPointer</refentrytitle></citerefentry>.
    </para>
    </refsect1>
    <refsect1 xml:id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"/> 2013-2014 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.
            <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://opencontent.org/openpub/">http://opencontent.org/openpub/</link>.
        </para>
    </refsect1>
</refentry>
