Opentk/Source/Bind/Specifications/Docs/glMultiTexCoord.xml
2009-03-08 00:46:58 +00:00

457 lines
22 KiB
XML

<?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="glMultiTexCoord">
<refmeta>
<refmetainfo>
<copyright>
<year>1991-2006</year>
<holder>Silicon Graphics, Inc.</holder>
</copyright>
</refmetainfo>
<refentrytitle>glMultiTexCoord</refentrytitle>
<manvolnum>3G</manvolnum>
</refmeta>
<refnamediv>
<refname>glMultiTexCoord</refname>
<refpurpose>set the current texture coordinates</refpurpose>
</refnamediv>
<refsynopsisdiv><title>C Specification</title>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1s</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLshort <parameter>s</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1i</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>s</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1f</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLfloat <parameter>s</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1d</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLdouble <parameter>s</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2s</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLshort <parameter>s</parameter></paramdef>
<paramdef>GLshort <parameter>t</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2i</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLint <parameter>s</parameter></paramdef>
<paramdef>GLint <parameter>t</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2f</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLfloat <parameter>s</parameter></paramdef>
<paramdef>GLfloat <parameter>t</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2d</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>GLdouble <parameter>s</parameter></paramdef>
<paramdef>GLdouble <parameter>t</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord3s</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord3i</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord3f</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord3d</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord4s</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord4i</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord4f</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>glMultiTexCoord4d</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<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>
<!-- eqn: ignoring delim $$ -->
<refsect1 id="parameters"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the texture unit whose coordinates should be modified. The number
of texture units is implementation dependent, but must be at least
two. Symbolic constant must be one of
<constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
where i ranges from 0 to <constant>GL_MAX_TEXTURE_COORDS</constant> - 1,
which is an implementation-dependent value.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>s</parameter></term>
<term><parameter>t</parameter></term>
<term><parameter>r</parameter></term>
<term><parameter>q</parameter></term>
<listitem>
<para>
Specify <parameter>s</parameter>, <parameter>t</parameter>, <parameter>r</parameter>, and <parameter>q</parameter> texture coordinates for
<parameter>target</parameter> texture unit. 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>glMultiTexCoord1sv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLshort * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1iv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLint * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1fv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLfloat * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord1dv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLdouble * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2sv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLshort * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2iv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLint * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2fv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLfloat * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord2dv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLdouble * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord3sv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLshort * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord3iv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLint * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord3fv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLfloat * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord3dv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLdouble * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord4sv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLshort * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord4iv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLint * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord4fv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLfloat * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
<funcsynopsis>
<funcprototype>
<funcdef>void <function>glMultiTexCoord4dv</function></funcdef>
<paramdef>GLenum <parameter>target</parameter></paramdef>
<paramdef>const GLdouble * <parameter>v</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 id="parameters2"><title>Parameters</title>
<variablelist>
<varlistentry>
<term><parameter>target</parameter></term>
<listitem>
<para>
Specifies the texture unit whose coordinates should be modified. The number
of texture units is implementation dependent, but must be at least
two. Symbolic constant must be one of
<constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
where i ranges from 0 to <constant>GL_MAX_TEXTURE_COORDS</constant> - 1,
which is an implementation-dependent value.
</para>
</listitem>
</varlistentry>
<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
<inlineequation><mml:math><mml:mi mathvariant="italic">s</mml:mi></mml:math></inlineequation>,
<inlineequation><mml:math><mml:mi mathvariant="italic">t</mml:mi></mml:math></inlineequation>,
<inlineequation><mml:math><mml:mi mathvariant="italic">r</mml:mi></mml:math></inlineequation>,
and
<inlineequation><mml:math><mml:mi mathvariant="italic">q</mml:mi></mml:math></inlineequation>
texture coordinates.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 id="description"><title>Description</title>
<para>
<function>glMultiTexCoord</function> specifies texture coordinates in one, two, three, or four
dimensions.
<function>glMultiTexCoord1</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>glMultiTexCoord2</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>glMultiTexCoord3</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>glMultiTexCoord4</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
<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>
are
<inlineequation><mml:math>
<!-- eqn: (0, 0, 0, 1):-->
<mml:mfenced open="(" close=")">
<mml:mn>0</mml:mn>
<mml:mn>0</mml:mn>
<mml:mn>0</mml:mn>
<mml:mn>1</mml:mn>
</mml:mfenced>
</mml:math></inlineequation>.
</para>
<para>
</para>
</refsect1>
<refsect1 id="notes"><title>Notes</title>
<para>
<function>glMultiTexCoord</function> is only supported if the GL version is 1.3 or greater, or if
<code>ARB_multitexture</code> is included in the string returned by
<citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry> when called with the argument <constant>GL_EXTENSIONS</constant>.
</para>
<para>
The current texture coordinates can be updated at any time.
In particular,
<function>glMultiTexCoord</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>
It is always the case that <constant>GL_TEXTURE</constant>
<inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>
= <constant>GL_TEXTURE0</constant> +
<inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>.
</para>
</refsect1>
<refsect1 id="associatedgets"><title>Associated Gets</title>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_CURRENT_TEXTURE_COORDS</constant> with appropriate
texture unit selected.
</para>
<para>
<citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAX_TEXTURE_COORDS</constant>
</para>
</refsect1>
<refsect1 id="seealso"><title>See Also</title>
<para>
<citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glClientActiveTexture</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexCoord</refentrytitle></citerefentry>,
<citerefentry><refentrytitle>glTexCoordPointer</refentrytitle></citerefentry>,
<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>