Light | Dark

# docs.GL

OpenGL 3
OpenGL 2

# glMultiTexCoord

## Name

glMultiTexCoord — set the current texture coordinates

## C Specification

`void glMultiTexCoord1s(` | GLenum | target,
| GLshort | s`)`;

`void glMultiTexCoord1i(` | GLenum | target,
| GLint | s`)`;

`void glMultiTexCoord1f(` | GLenum | target,
| GLfloat | s`)`;

`void glMultiTexCoord1d(` | GLenum | target,
| GLdouble | s`)`;

`void glMultiTexCoord2s(` | GLenum | target,
| GLshort | s,
| GLshort | t`)`;

`void glMultiTexCoord2i(` | GLenum | target,
| GLint | s,
| GLint | t`)`;

`void glMultiTexCoord2f(` | GLenum | target,
| GLfloat | s,
| GLfloat | t`)`;

`void glMultiTexCoord2d(` | GLenum | target,
| GLdouble | s,
| GLdouble | t`)`;

`void glMultiTexCoord3s(` | GLenum | target,
| GLshort | s,
| GLshort | t,
| GLshort | r`)`;

`void glMultiTexCoord3i(` | GLenum | target,
| GLint | s,
| GLint | t,
| GLint | r`)`;

`void glMultiTexCoord3f(` | GLenum | target,
| GLfloat | s,
| GLfloat | t,
| GLfloat | r`)`;

`void glMultiTexCoord3d(` | GLenum | target,
| GLdouble | s,
| GLdouble | t,
| GLdouble | r`)`;

`void glMultiTexCoord4s(` | GLenum | target,
| GLshort | s,
| GLshort | t,
| GLshort | r,
| GLshort | q`)`;

`void glMultiTexCoord4i(` | GLenum | target,
| GLint | s,
| GLint | t,
| GLint | r,
| GLint | q`)`;

`void glMultiTexCoord4f(` | GLenum | target,
| GLfloat | s,
| GLfloat | t,
| GLfloat | r,
| GLfloat | q`)`;

`void glMultiTexCoord4d(` | GLenum | target,
| GLdouble | s,
| GLdouble | t,
| GLdouble | r,
| GLdouble | q`)`;

## Parameters

`target`

  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 `GL_TEXTURE` i, where i ranges from 0 to `GL_MAX_TEXTURE_COORDS` - 1, which is an implementation-dependent value.

`s`, `t`, `r`, `q`

  Specify `s`, `t`, `r`, and `q` texture coordinates for `target` texture unit. Not all parameters are present in all forms of the command.

## C Specification

`void glMultiTexCoord1sv(` | GLenum | target,
| const GLshort * | v`)`;

`void glMultiTexCoord1iv(` | GLenum | target,
| const GLint * | v`)`;

`void glMultiTexCoord1fv(` | GLenum | target,
| const GLfloat * | v`)`;

`void glMultiTexCoord1dv(` | GLenum | target,
| const GLdouble * | v`)`;

`void glMultiTexCoord2sv(` | GLenum | target,
| const GLshort * | v`)`;

`void glMultiTexCoord2iv(` | GLenum | target,
| const GLint * | v`)`;

`void glMultiTexCoord2fv(` | GLenum | target,
| const GLfloat * | v`)`;

`void glMultiTexCoord2dv(` | GLenum | target,
| const GLdouble * | v`)`;

`void glMultiTexCoord3sv(` | GLenum | target,
| const GLshort * | v`)`;

`void glMultiTexCoord3iv(` | GLenum | target,
| const GLint * | v`)`;

`void glMultiTexCoord3fv(` | GLenum | target,
| const GLfloat * | v`)`;

`void glMultiTexCoord3dv(` | GLenum | target,
| const GLdouble * | v`)`;

`void glMultiTexCoord4sv(` | GLenum | target,
| const GLshort * | v`)`;

`void glMultiTexCoord4iv(` | GLenum | target,
| const GLint * | v`)`;

`void glMultiTexCoord4fv(` | GLenum | target,
| const GLfloat * | v`)`;

`void glMultiTexCoord4dv(` | GLenum | target,
| const GLdouble * | v`)`;

## Parameters

`target`

  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 `GL_TEXTURE` i, where i ranges from 0 to `GL_MAX_TEXTURE_COORDS` - 1, which is an implementation-dependent value.

`v`

  Specifies a pointer to an array of one, two, three, or four elements, which in turn specify the s, t, r, and q texture coordinates.

## Description

`glMultiTexCoord` specifies texture coordinates in one, two, three, or four dimensions. `glMultiTexCoord1` sets the current texture coordinates to s 0 0 1 ; a call to `glMultiTexCoord2` sets them to s t 0 1 . Similarly, `glMultiTexCoord3` specifies the texture coordinates as s t r 1 , and `glMultiTexCoord4` defines all four components explicitly as s t r q .

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 s t r q are 0 0 0 1 .

## Notes

`glMultiTexCoord` is only supported if the GL version is 1.3 or greater, or if `ARB_multitexture` is included in the string returned by glGetString when called with the argument `GL_EXTENSIONS`.

The current texture coordinates can be updated at any time. In particular, `glMultiTexCoord` can be called between a call to glBegin and the corresponding call to glEnd.

It is always the case that `GL_TEXTURE` i = `GL_TEXTURE0` + i.

## Associated Gets

glGet with argument `GL_CURRENT_TEXTURE_COORDS` with appropriate texture unit selected.

glGet with argument `GL_MAX_TEXTURE_COORDS`

## See Also

glActiveTexture, glClientActiveTexture, glTexCoord, glTexCoordPointer, glVertex

## Copyright

Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/.

Think you can improve this page? Edit this page on GitHub.