
<refentry id="glTexCoord">
    <refmeta>
        <refmetainfo>
            <copyright>
                <year>1991-2006</year>
                <holder>Silicon Graphics, Inc.</holder>
            </copyright>
        </refmetainfo>
        <refentrytitle>glTexCoord</refentrytitle>
        <manvolnum>3G</manvolnum>
    </refmeta>
    <refnamediv>
        <refname>glTexCoord</refname>
        <refpurpose>set the current texture coordinates</refpurpose>
    </refnamediv>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1s</function></funcdef>
                <paramdef>GLshort <parameter>s</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1i</function></funcdef>
                <paramdef>GLint <parameter>s</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1f</function></funcdef>
                <paramdef>GLfloat <parameter>s</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1d</function></funcdef>
                <paramdef>GLdouble <parameter>s</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2s</function></funcdef>
                <paramdef>GLshort <parameter>s</parameter></paramdef>
                <paramdef>GLshort <parameter>t</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2i</function></funcdef>
                <paramdef>GLint <parameter>s</parameter></paramdef>
                <paramdef>GLint <parameter>t</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2f</function></funcdef>
                <paramdef>GLfloat <parameter>s</parameter></paramdef>
                <paramdef>GLfloat <parameter>t</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2d</function></funcdef>
                <paramdef>GLdouble <parameter>s</parameter></paramdef>
                <paramdef>GLdouble <parameter>t</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3s</function></funcdef>
                <paramdef>GLshort <parameter>s</parameter></paramdef>
                <paramdef>GLshort <parameter>t</parameter></paramdef>
                <paramdef>GLshort <parameter>r</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3i</function></funcdef>
                <paramdef>GLint <parameter>s</parameter></paramdef>
                <paramdef>GLint <parameter>t</parameter></paramdef>
                <paramdef>GLint <parameter>r</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3f</function></funcdef>
                <paramdef>GLfloat <parameter>s</parameter></paramdef>
                <paramdef>GLfloat <parameter>t</parameter></paramdef>
                <paramdef>GLfloat <parameter>r</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3d</function></funcdef>
                <paramdef>GLdouble <parameter>s</parameter></paramdef>
                <paramdef>GLdouble <parameter>t</parameter></paramdef>
                <paramdef>GLdouble <parameter>r</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4s</function></funcdef>
                <paramdef>GLshort <parameter>s</parameter></paramdef>
                <paramdef>GLshort <parameter>t</parameter></paramdef>
                <paramdef>GLshort <parameter>r</parameter></paramdef>
                <paramdef>GLshort <parameter>q</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4i</function></funcdef>
                <paramdef>GLint <parameter>s</parameter></paramdef>
                <paramdef>GLint <parameter>t</parameter></paramdef>
                <paramdef>GLint <parameter>r</parameter></paramdef>
                <paramdef>GLint <parameter>q</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4f</function></funcdef>
                <paramdef>GLfloat <parameter>s</parameter></paramdef>
                <paramdef>GLfloat <parameter>t</parameter></paramdef>
                <paramdef>GLfloat <parameter>r</parameter></paramdef>
                <paramdef>GLfloat <parameter>q</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4d</function></funcdef>
                <paramdef>GLdouble <parameter>s</parameter></paramdef>
                <paramdef>GLdouble <parameter>t</parameter></paramdef>
                <paramdef>GLdouble <parameter>r</parameter></paramdef>
                <paramdef>GLdouble <parameter>q</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>s</parameter></term>
            <term><parameter>t</parameter></term>
            <term><parameter>r</parameter></term>
            <term><parameter>q</parameter></term>
            <listitem>
                <para>
                    Specify <emphasis>s</emphasis>, <emphasis>t</emphasis>, <emphasis>r</emphasis>, and <emphasis>q</emphasis>  texture coordinates.
                    Not all parameters are present in all forms of the command.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsynopsisdiv><title>C Specification</title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1sv</function></funcdef>
                <paramdef>const GLshort * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1iv</function></funcdef>
                <paramdef>const GLint * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1fv</function></funcdef>
                <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord1dv</function></funcdef>
                <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2sv</function></funcdef>
                <paramdef>const GLshort * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2iv</function></funcdef>
                <paramdef>const GLint * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2fv</function></funcdef>
                <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord2dv</function></funcdef>
                <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3sv</function></funcdef>
                <paramdef>const GLshort * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3iv</function></funcdef>
                <paramdef>const GLint * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3fv</function></funcdef>
                <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord3dv</function></funcdef>
                <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4sv</function></funcdef>
                <paramdef>const GLshort * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4iv</function></funcdef>
                <paramdef>const GLint * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4fv</function></funcdef>
                <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
        <funcsynopsis>
            <funcprototype>
                <funcdef>void <function>glTexCoord4dv</function></funcdef>
                <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>
    <refsect1 id="parameters2"><title>Parameters</title>
        <variablelist>
        <varlistentry>
            <term><parameter>v</parameter></term>
            <listitem>
                <para>
                    Specifies a pointer to an array of one, two, three, or four elements,
                    which in turn specify the
                    <emphasis>s</emphasis>,
                    <emphasis>t</emphasis>,
                    <emphasis>r</emphasis>, and
                    <emphasis>q</emphasis> texture coordinates.
                </para>
            </listitem>
        </varlistentry>
        </variablelist>
    </refsect1>
    <refsect1 id="description"><title>Description</title>
        <para>
            <function>glTexCoord</function> specifies texture coordinates in
            one,
            two,
            three, or
            four dimensions.
            <function>glTexCoord1</function> sets the current texture coordinates to
            <inlineequation><mml:math>
                <!-- eqn: (s, 0, 0, 1):-->
                <mml:mfenced open="(" close=")">
                    <mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mn>0</mml:mn>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                </mml:mfenced>
            </mml:math></inlineequation>;
            a call to
            <function>glTexCoord2</function> sets them to
            <inlineequation><mml:math>
                <!-- eqn: (s, t, 0, 1):-->
                <mml:mfenced open="(" close=")">
                    <mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">t</mml:mi>
                    <mml:mn>0</mml:mn>
                    <mml:mn>1</mml:mn>
                </mml:mfenced>
            </mml:math></inlineequation>.
            Similarly, <function>glTexCoord3</function> specifies the texture coordinates as
            <inlineequation><mml:math>
                <!-- eqn: (s, t, r, 1):-->
                <mml:mfenced open="(" close=")">
                    <mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">t</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    <mml:mn>1</mml:mn>
                </mml:mfenced>
            </mml:math></inlineequation>,
            and
            <function>glTexCoord4</function> defines all four components explicitly as
            <inlineequation><mml:math>
                <!-- eqn: (s, t, r, q):-->
                <mml:mfenced open="(" close=")">
                    <mml:mi mathvariant="italic">s</mml:mi>
                    <mml:mi mathvariant="italic">t</mml:mi>
                    <mml:mi mathvariant="italic">r</mml:mi>
                    <mml:mi mathvariant="italic">q</mml:mi>
                </mml:mfenced>
            </mml:math></inlineequation>.
        </para>
        <para>
            The current texture coordinates are part of the data
            that is associated with each vertex and with the current
            raster position.
            Initially, the values for
            <emphasis>s</emphasis>,
            <emphasis>t</emphasis>,
            <emphasis>r</emphasis>, and
            <emphasis>q</emphasis>
            are (0, 0, 0, 1).
        </para>
        <para>
        </para>
    </refsect1>
    <refsect1 id="notes"><title>Notes</title>
        <para>
            The current texture coordinates can be updated at any time.
            In particular,
            <function>glTexCoord</function> can be called between a call to <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry> and the corresponding
            call to <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
        </para>
        <para>
            When the <code>ARB_imaging</code> extension is supported, <function>glTexCoord</function> always
            updates texture unit <constant>GL_TEXTURE0</constant>.
        </para>
    </refsect1>
    <refsect1 id="associatedgets"><title>Associated Gets</title>
        <para>
            <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_CURRENT_TEXTURE_COORDS</constant>
        </para>
    </refsect1>
    <refsect1 id="seealso"><title>See Also</title>
        <para>
            <citerefentry><refentrytitle>glMultiTexCoord</refentrytitle></citerefentry>,
            <function>glTexCoordPointer</function>,
            <citerefentry><refentrytitle>glVertex</refentrytitle></citerefentry>
        </para>
    </refsect1>
    <refsect1 id="Copyright"><title>Copyright</title>
        <para>
            Copyright <trademark class="copyright"></trademark> 1991-2006
            Silicon Graphics, Inc. This document is licensed under the SGI
            Free Software B License. For details, see
            <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
        </para>
    </refsect1>
</refentry>
