<?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="glEnableVertexAttribArray">
    <refmeta>
	<refentrytitle>glEnableVertexAttribArray</refentrytitle>
	<manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
	<refdescriptor>glEnableVertexAttribArray</refdescriptor>
	<refname>glEnableVertexAttribArray</refname>
	<refname>glDisableVertexAttribArray</refname>
	<refpurpose>Enable or disable a generic vertex attribute array</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
	<funcsynopsis>
	    <funcprototype>
		<funcdef>void <function>glEnableVertexAttribArray</function></funcdef>
		<paramdef>GLuint <parameter>index</parameter></paramdef>
	    </funcprototype>
	    <funcprototype>
		<funcdef>void <function>glDisableVertexAttribArray</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 index of the generic vertex
		    attribute to be enabled or disabled.</para>
		</listitem>
	    </varlistentry>
	</variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
	<para><function>glEnableVertexAttribArray</function> enables the
	generic vertex attribute array specified by
	<parameter>index</parameter>.
	<function>glDisableVertexAttribArray</function> disables the
	generic vertex attribute array specified by
	<parameter>index</parameter>. By default, all client-side
	capabilities are disabled, including all generic vertex
	attribute arrays. If enabled, the values in the generic vertex
	attribute array will be accessed and used for rendering when
	calls are made to vertex array commands such as
	<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glArrayElement</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glMultiDrawElements</refentrytitle></citerefentry>,
	or
	<citerefentry><refentrytitle>glMultiDrawArrays</refentrytitle></citerefentry>.</para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
	<para><function>glEnableVertexAttribArray</function> and
	<function>glDisableVertexAttribArray </function> are available
	only if the GL version is 2.0 or greater.</para>
    </refsect1>
    <refsect1 id="errors"><title>Errors</title>
	<para><constant>GL_INVALID_VALUE</constant> is generated if
	<parameter>index</parameter> is greater than or equal to
	<constant>GL_MAX_VERTEX_ATTRIBS</constant>.</para>

	<para><constant>GL_INVALID_OPERATION</constant> is generated if either
	<function>glEnableVertexAttribArray </function> or
	<function>glDisableVertexAttribArray </function> is executed
	between the execution of
	<citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry>
	and the corresponding execution of
	<citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.</para>
    </refsect1>
    <refsect1 id="associatedgets"><title>Associated Gets</title>
	<para><citerefentry><refentrytitle>glGet</refentrytitle></citerefentry>
	with argument <constant>GL_MAX_VERTEX_ATTRIBS</constant></para>

	<para><citerefentry><refentrytitle>glGetVertexAttrib</refentrytitle></citerefentry>
	with arguments <parameter>index</parameter> and
	<constant>GL_VERTEX_ATTRIB_ARRAY_ENABLED</constant>
	<parameter></parameter></para>

	<para><citerefentry><refentrytitle>glGetVertexAttribPointerv</refentrytitle></citerefentry>
	with arguments <parameter>index</parameter> and
	<constant>GL_VERTEX_ATTRIB_ARRAY_POINTER</constant></para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
	<para><citerefentry><refentrytitle>glArrayElement</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glBindAttribLocation</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glDrawArrays</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glDrawElements</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glDrawRangeElements</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glMultiDrawElements</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glPopClientAttrib</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glPushClientAttrib</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glVertexAttrib</refentrytitle></citerefentry>,
	<citerefentry><refentrytitle>glVertexAttribPointer</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>
