include more low-level bindings
[clinton/guile-figl.git] / upstream-man-pages / man2 / glMultiTexCoord.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">
4 <refentry id="glMultiTexCoord">
5 <refmeta>
6 <refmetainfo>
7 <copyright>
8 <year>1991-2006</year>
9 <holder>Silicon Graphics, Inc.</holder>
10 </copyright>
11 </refmetainfo>
12 <refentrytitle>glMultiTexCoord</refentrytitle>
13 <manvolnum>3G</manvolnum>
14 </refmeta>
15 <refnamediv>
16 <refname>glMultiTexCoord</refname>
17 <refpurpose>set the current texture coordinates</refpurpose>
18 </refnamediv>
19 <refsynopsisdiv><title>C Specification</title>
20 <funcsynopsis>
21 <funcprototype>
22 <funcdef>void <function>glMultiTexCoord1s</function></funcdef>
23 <paramdef>GLenum <parameter>target</parameter></paramdef>
24 <paramdef>GLshort <parameter>s</parameter></paramdef>
25 </funcprototype>
26 </funcsynopsis>
27 <funcsynopsis>
28 <funcprototype>
29 <funcdef>void <function>glMultiTexCoord1i</function></funcdef>
30 <paramdef>GLenum <parameter>target</parameter></paramdef>
31 <paramdef>GLint <parameter>s</parameter></paramdef>
32 </funcprototype>
33 </funcsynopsis>
34 <funcsynopsis>
35 <funcprototype>
36 <funcdef>void <function>glMultiTexCoord1f</function></funcdef>
37 <paramdef>GLenum <parameter>target</parameter></paramdef>
38 <paramdef>GLfloat <parameter>s</parameter></paramdef>
39 </funcprototype>
40 </funcsynopsis>
41 <funcsynopsis>
42 <funcprototype>
43 <funcdef>void <function>glMultiTexCoord1d</function></funcdef>
44 <paramdef>GLenum <parameter>target</parameter></paramdef>
45 <paramdef>GLdouble <parameter>s</parameter></paramdef>
46 </funcprototype>
47 </funcsynopsis>
48 <funcsynopsis>
49 <funcprototype>
50 <funcdef>void <function>glMultiTexCoord2s</function></funcdef>
51 <paramdef>GLenum <parameter>target</parameter></paramdef>
52 <paramdef>GLshort <parameter>s</parameter></paramdef>
53 <paramdef>GLshort <parameter>t</parameter></paramdef>
54 </funcprototype>
55 </funcsynopsis>
56 <funcsynopsis>
57 <funcprototype>
58 <funcdef>void <function>glMultiTexCoord2i</function></funcdef>
59 <paramdef>GLenum <parameter>target</parameter></paramdef>
60 <paramdef>GLint <parameter>s</parameter></paramdef>
61 <paramdef>GLint <parameter>t</parameter></paramdef>
62 </funcprototype>
63 </funcsynopsis>
64 <funcsynopsis>
65 <funcprototype>
66 <funcdef>void <function>glMultiTexCoord2f</function></funcdef>
67 <paramdef>GLenum <parameter>target</parameter></paramdef>
68 <paramdef>GLfloat <parameter>s</parameter></paramdef>
69 <paramdef>GLfloat <parameter>t</parameter></paramdef>
70 </funcprototype>
71 </funcsynopsis>
72 <funcsynopsis>
73 <funcprototype>
74 <funcdef>void <function>glMultiTexCoord2d</function></funcdef>
75 <paramdef>GLenum <parameter>target</parameter></paramdef>
76 <paramdef>GLdouble <parameter>s</parameter></paramdef>
77 <paramdef>GLdouble <parameter>t</parameter></paramdef>
78 </funcprototype>
79 </funcsynopsis>
80 <funcsynopsis>
81 <funcprototype>
82 <funcdef>void <function>glMultiTexCoord3s</function></funcdef>
83 <paramdef>GLenum <parameter>target</parameter></paramdef>
84 <paramdef>GLshort <parameter>s</parameter></paramdef>
85 <paramdef>GLshort <parameter>t</parameter></paramdef>
86 <paramdef>GLshort <parameter>r</parameter></paramdef>
87 </funcprototype>
88 </funcsynopsis>
89 <funcsynopsis>
90 <funcprototype>
91 <funcdef>void <function>glMultiTexCoord3i</function></funcdef>
92 <paramdef>GLenum <parameter>target</parameter></paramdef>
93 <paramdef>GLint <parameter>s</parameter></paramdef>
94 <paramdef>GLint <parameter>t</parameter></paramdef>
95 <paramdef>GLint <parameter>r</parameter></paramdef>
96 </funcprototype>
97 </funcsynopsis>
98 <funcsynopsis>
99 <funcprototype>
100 <funcdef>void <function>glMultiTexCoord3f</function></funcdef>
101 <paramdef>GLenum <parameter>target</parameter></paramdef>
102 <paramdef>GLfloat <parameter>s</parameter></paramdef>
103 <paramdef>GLfloat <parameter>t</parameter></paramdef>
104 <paramdef>GLfloat <parameter>r</parameter></paramdef>
105 </funcprototype>
106 </funcsynopsis>
107 <funcsynopsis>
108 <funcprototype>
109 <funcdef>void <function>glMultiTexCoord3d</function></funcdef>
110 <paramdef>GLenum <parameter>target</parameter></paramdef>
111 <paramdef>GLdouble <parameter>s</parameter></paramdef>
112 <paramdef>GLdouble <parameter>t</parameter></paramdef>
113 <paramdef>GLdouble <parameter>r</parameter></paramdef>
114 </funcprototype>
115 </funcsynopsis>
116 <funcsynopsis>
117 <funcprototype>
118 <funcdef>void <function>glMultiTexCoord4s</function></funcdef>
119 <paramdef>GLenum <parameter>target</parameter></paramdef>
120 <paramdef>GLshort <parameter>s</parameter></paramdef>
121 <paramdef>GLshort <parameter>t</parameter></paramdef>
122 <paramdef>GLshort <parameter>r</parameter></paramdef>
123 <paramdef>GLshort <parameter>q</parameter></paramdef>
124 </funcprototype>
125 </funcsynopsis>
126 <funcsynopsis>
127 <funcprototype>
128 <funcdef>void <function>glMultiTexCoord4i</function></funcdef>
129 <paramdef>GLenum <parameter>target</parameter></paramdef>
130 <paramdef>GLint <parameter>s</parameter></paramdef>
131 <paramdef>GLint <parameter>t</parameter></paramdef>
132 <paramdef>GLint <parameter>r</parameter></paramdef>
133 <paramdef>GLint <parameter>q</parameter></paramdef>
134 </funcprototype>
135 </funcsynopsis>
136 <funcsynopsis>
137 <funcprototype>
138 <funcdef>void <function>glMultiTexCoord4f</function></funcdef>
139 <paramdef>GLenum <parameter>target</parameter></paramdef>
140 <paramdef>GLfloat <parameter>s</parameter></paramdef>
141 <paramdef>GLfloat <parameter>t</parameter></paramdef>
142 <paramdef>GLfloat <parameter>r</parameter></paramdef>
143 <paramdef>GLfloat <parameter>q</parameter></paramdef>
144 </funcprototype>
145 </funcsynopsis>
146 <funcsynopsis>
147 <funcprototype>
148 <funcdef>void <function>glMultiTexCoord4d</function></funcdef>
149 <paramdef>GLenum <parameter>target</parameter></paramdef>
150 <paramdef>GLdouble <parameter>s</parameter></paramdef>
151 <paramdef>GLdouble <parameter>t</parameter></paramdef>
152 <paramdef>GLdouble <parameter>r</parameter></paramdef>
153 <paramdef>GLdouble <parameter>q</parameter></paramdef>
154 </funcprototype>
155 </funcsynopsis>
156 </refsynopsisdiv>
157 <!-- eqn: ignoring delim $$ -->
158 <refsect1 id="parameters"><title>Parameters</title>
159 <variablelist>
160 <varlistentry>
161 <term><parameter>target</parameter></term>
162 <listitem>
163 <para>
164 Specifies the texture unit whose coordinates should be modified. The number
165 of texture units is implementation dependent, but must be at least
166 two. Symbolic constant must be one of
167 <constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
168 where i ranges from 0 to <constant>GL_MAX_TEXTURE_COORDS</constant> - 1,
169 which is an implementation-dependent value.
170 </para>
171 </listitem>
172 </varlistentry>
173 <varlistentry>
174 <term><parameter>s</parameter></term>
175 <term><parameter>t</parameter></term>
176 <term><parameter>r</parameter></term>
177 <term><parameter>q</parameter></term>
178 <listitem>
179 <para>
180 Specify <parameter>s</parameter>, <parameter>t</parameter>, <parameter>r</parameter>, and <parameter>q</parameter> texture coordinates for
181 <parameter>target</parameter> texture unit. Not all parameters are present in all forms
182 of the command.
183 </para>
184 </listitem>
185 </varlistentry>
186 </variablelist>
187 </refsect1>
188 <refsynopsisdiv><title>C Specification</title>
189 <funcsynopsis>
190 <funcprototype>
191 <funcdef>void <function>glMultiTexCoord1sv</function></funcdef>
192 <paramdef>GLenum <parameter>target</parameter></paramdef>
193 <paramdef>const GLshort * <parameter>v</parameter></paramdef>
194 </funcprototype>
195 </funcsynopsis>
196 <funcsynopsis>
197 <funcprototype>
198 <funcdef>void <function>glMultiTexCoord1iv</function></funcdef>
199 <paramdef>GLenum <parameter>target</parameter></paramdef>
200 <paramdef>const GLint * <parameter>v</parameter></paramdef>
201 </funcprototype>
202 </funcsynopsis>
203 <funcsynopsis>
204 <funcprototype>
205 <funcdef>void <function>glMultiTexCoord1fv</function></funcdef>
206 <paramdef>GLenum <parameter>target</parameter></paramdef>
207 <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
208 </funcprototype>
209 </funcsynopsis>
210 <funcsynopsis>
211 <funcprototype>
212 <funcdef>void <function>glMultiTexCoord1dv</function></funcdef>
213 <paramdef>GLenum <parameter>target</parameter></paramdef>
214 <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
215 </funcprototype>
216 </funcsynopsis>
217 <funcsynopsis>
218 <funcprototype>
219 <funcdef>void <function>glMultiTexCoord2sv</function></funcdef>
220 <paramdef>GLenum <parameter>target</parameter></paramdef>
221 <paramdef>const GLshort * <parameter>v</parameter></paramdef>
222 </funcprototype>
223 </funcsynopsis>
224 <funcsynopsis>
225 <funcprototype>
226 <funcdef>void <function>glMultiTexCoord2iv</function></funcdef>
227 <paramdef>GLenum <parameter>target</parameter></paramdef>
228 <paramdef>const GLint * <parameter>v</parameter></paramdef>
229 </funcprototype>
230 </funcsynopsis>
231 <funcsynopsis>
232 <funcprototype>
233 <funcdef>void <function>glMultiTexCoord2fv</function></funcdef>
234 <paramdef>GLenum <parameter>target</parameter></paramdef>
235 <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
236 </funcprototype>
237 </funcsynopsis>
238 <funcsynopsis>
239 <funcprototype>
240 <funcdef>void <function>glMultiTexCoord2dv</function></funcdef>
241 <paramdef>GLenum <parameter>target</parameter></paramdef>
242 <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
243 </funcprototype>
244 </funcsynopsis>
245 <funcsynopsis>
246 <funcprototype>
247 <funcdef>void <function>glMultiTexCoord3sv</function></funcdef>
248 <paramdef>GLenum <parameter>target</parameter></paramdef>
249 <paramdef>const GLshort * <parameter>v</parameter></paramdef>
250 </funcprototype>
251 </funcsynopsis>
252 <funcsynopsis>
253 <funcprototype>
254 <funcdef>void <function>glMultiTexCoord3iv</function></funcdef>
255 <paramdef>GLenum <parameter>target</parameter></paramdef>
256 <paramdef>const GLint * <parameter>v</parameter></paramdef>
257 </funcprototype>
258 </funcsynopsis>
259 <funcsynopsis>
260 <funcprototype>
261 <funcdef>void <function>glMultiTexCoord3fv</function></funcdef>
262 <paramdef>GLenum <parameter>target</parameter></paramdef>
263 <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
264 </funcprototype>
265 </funcsynopsis>
266 <funcsynopsis>
267 <funcprototype>
268 <funcdef>void <function>glMultiTexCoord3dv</function></funcdef>
269 <paramdef>GLenum <parameter>target</parameter></paramdef>
270 <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
271 </funcprototype>
272 </funcsynopsis>
273 <funcsynopsis>
274 <funcprototype>
275 <funcdef>void <function>glMultiTexCoord4sv</function></funcdef>
276 <paramdef>GLenum <parameter>target</parameter></paramdef>
277 <paramdef>const GLshort * <parameter>v</parameter></paramdef>
278 </funcprototype>
279 </funcsynopsis>
280 <funcsynopsis>
281 <funcprototype>
282 <funcdef>void <function>glMultiTexCoord4iv</function></funcdef>
283 <paramdef>GLenum <parameter>target</parameter></paramdef>
284 <paramdef>const GLint * <parameter>v</parameter></paramdef>
285 </funcprototype>
286 </funcsynopsis>
287 <funcsynopsis>
288 <funcprototype>
289 <funcdef>void <function>glMultiTexCoord4fv</function></funcdef>
290 <paramdef>GLenum <parameter>target</parameter></paramdef>
291 <paramdef>const GLfloat * <parameter>v</parameter></paramdef>
292 </funcprototype>
293 </funcsynopsis>
294 <funcsynopsis>
295 <funcprototype>
296 <funcdef>void <function>glMultiTexCoord4dv</function></funcdef>
297 <paramdef>GLenum <parameter>target</parameter></paramdef>
298 <paramdef>const GLdouble * <parameter>v</parameter></paramdef>
299 </funcprototype>
300 </funcsynopsis>
301 </refsynopsisdiv>
302 <refsect1 id="parameters2"><title>Parameters</title>
303 <variablelist>
304 <varlistentry>
305 <term><parameter>target</parameter></term>
306 <listitem>
307 <para>
308 Specifies the texture unit whose coordinates should be modified. The number
309 of texture units is implementation dependent, but must be at least
310 two. Symbolic constant must be one of
311 <constant>GL_TEXTURE</constant><inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>,
312 where i ranges from 0 to <constant>GL_MAX_TEXTURE_COORDS</constant> - 1,
313 which is an implementation-dependent value.
314 </para>
315 </listitem>
316 </varlistentry>
317 <varlistentry>
318 <term><parameter>v</parameter></term>
319 <listitem>
320 <para>
321 Specifies a pointer to an array of one, two, three, or four elements,
322 which in turn specify the
323 <inlineequation><mml:math><mml:mi mathvariant="italic">s</mml:mi></mml:math></inlineequation>,
324 <inlineequation><mml:math><mml:mi mathvariant="italic">t</mml:mi></mml:math></inlineequation>,
325 <inlineequation><mml:math><mml:mi mathvariant="italic">r</mml:mi></mml:math></inlineequation>,
326 and
327 <inlineequation><mml:math><mml:mi mathvariant="italic">q</mml:mi></mml:math></inlineequation>
328 texture coordinates.
329 </para>
330 </listitem>
331 </varlistentry>
332 </variablelist>
333 </refsect1>
334 <refsect1 id="description"><title>Description</title>
335 <para>
336 <function>glMultiTexCoord</function> specifies texture coordinates in one, two, three, or four
337 dimensions.
338 <function>glMultiTexCoord1</function> sets the current texture
339 coordinates to
340 <inlineequation><mml:math>
341 <!-- eqn: (s, 0, 0, 1):-->
342 <mml:mfenced open="(" close=")">
343 <mml:mi mathvariant="italic">s</mml:mi>
344 <mml:mn>0</mml:mn>
345 <mml:mn>0</mml:mn>
346 <mml:mn>1</mml:mn>
347 </mml:mfenced>
348 </mml:math></inlineequation>;
349 a call to <function>glMultiTexCoord2</function>
350 sets them to
351 <inlineequation><mml:math>
352 <!-- eqn: (s, t, 0, 1):-->
353 <mml:mfenced open="(" close=")">
354 <mml:mi mathvariant="italic">s</mml:mi>
355 <mml:mi mathvariant="italic">t</mml:mi>
356 <mml:mn>0</mml:mn>
357 <mml:mn>1</mml:mn>
358 </mml:mfenced>
359 </mml:math></inlineequation>.
360 Similarly, <function>glMultiTexCoord3</function> specifies the texture coordinates as
361 <inlineequation><mml:math>
362 <!-- eqn: (s, t, r, 1):-->
363 <mml:mfenced open="(" close=")">
364 <mml:mi mathvariant="italic">s</mml:mi>
365 <mml:mi mathvariant="italic">t</mml:mi>
366 <mml:mi mathvariant="italic">r</mml:mi>
367 <mml:mn>1</mml:mn>
368 </mml:mfenced>
369 </mml:math></inlineequation>,
370 and
371 <function>glMultiTexCoord4</function>
372 defines all four components explicitly as
373 <inlineequation><mml:math>
374 <!-- eqn: (s, t, r, q):-->
375 <mml:mfenced open="(" close=")">
376 <mml:mi mathvariant="italic">s</mml:mi>
377 <mml:mi mathvariant="italic">t</mml:mi>
378 <mml:mi mathvariant="italic">r</mml:mi>
379 <mml:mi mathvariant="italic">q</mml:mi>
380 </mml:mfenced>
381 </mml:math></inlineequation>.
382 </para>
383 <para>
384 The current texture coordinates are part of the data
385 that is associated with each vertex and with the current
386 raster position.
387 Initially, the values for
388 <inlineequation><mml:math>
389 <!-- eqn: (s, t, r, q):-->
390 <mml:mfenced open="(" close=")">
391 <mml:mi mathvariant="italic">s</mml:mi>
392 <mml:mi mathvariant="italic">t</mml:mi>
393 <mml:mi mathvariant="italic">r</mml:mi>
394 <mml:mi mathvariant="italic">q</mml:mi>
395 </mml:mfenced>
396 </mml:math></inlineequation>
397 are
398 <inlineequation><mml:math>
399 <!-- eqn: (0, 0, 0, 1):-->
400 <mml:mfenced open="(" close=")">
401 <mml:mn>0</mml:mn>
402 <mml:mn>0</mml:mn>
403 <mml:mn>0</mml:mn>
404 <mml:mn>1</mml:mn>
405 </mml:mfenced>
406 </mml:math></inlineequation>.
407 </para>
408 <para>
409 </para>
410 </refsect1>
411 <refsect1 id="notes"><title>Notes</title>
412 <para>
413 <function>glMultiTexCoord</function> is only supported if the GL version is 1.3 or greater, or if
414 <code>ARB_multitexture</code> is included in the string returned by
415 <citerefentry><refentrytitle>glGetString</refentrytitle></citerefentry> when called with the argument <constant>GL_EXTENSIONS</constant>.
416 </para>
417 <para>
418 The current texture coordinates can be updated at any time.
419 In particular,
420 <function>glMultiTexCoord</function> can be called between a call to <citerefentry><refentrytitle>glBegin</refentrytitle></citerefentry> and the corresponding
421 call to <citerefentry><refentrytitle>glEnd</refentrytitle></citerefentry>.
422 </para>
423 <para>
424 It is always the case that <constant>GL_TEXTURE</constant>
425 <inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>
426 = <constant>GL_TEXTURE0</constant> +
427 <inlineequation><mml:math><mml:mi mathvariant="italic">i</mml:mi></mml:math></inlineequation>.
428 </para>
429 </refsect1>
430 <refsect1 id="associatedgets"><title>Associated Gets</title>
431 <para>
432 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_CURRENT_TEXTURE_COORDS</constant> with appropriate
433 texture unit selected.
434 </para>
435 <para>
436 <citerefentry><refentrytitle>glGet</refentrytitle></citerefentry> with argument <constant>GL_MAX_TEXTURE_COORDS</constant>
437 </para>
438 </refsect1>
439 <refsect1 id="seealso"><title>See Also</title>
440 <para>
441 <citerefentry><refentrytitle>glActiveTexture</refentrytitle></citerefentry>,
442 <citerefentry><refentrytitle>glClientActiveTexture</refentrytitle></citerefentry>,
443 <citerefentry><refentrytitle>glTexCoord</refentrytitle></citerefentry>,
444 <citerefentry><refentrytitle>glTexCoordPointer</refentrytitle></citerefentry>,
445 <citerefentry><refentrytitle>glVertex</refentrytitle></citerefentry>
446 </para>
447 </refsect1>
448 <refsect1 id="Copyright"><title>Copyright</title>
449 <para>
450 Copyright <trademark class="copyright"></trademark> 1991-2006
451 Silicon Graphics, Inc. This document is licensed under the SGI
452 Free Software B License. For details, see
453 <ulink url="http://oss.sgi.com/projects/FreeB/">http://oss.sgi.com/projects/FreeB/</ulink>.
454 </para>
455 </refsect1>
456 </refentry>