---
name: "glMultiTexCoordARB"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glMultiTexCoordARB"
---

# glMultiTexCoordARB(3x)

set the current texture coordinates

## NAME

**glMultiTexCoord1dARB, glMultiTexCoord1fARB, glMultiTexCoord1iARB, glMultiTexCoord1sARB, glMultiTexCoord2dARB, glMultiTexCoord2fARB, glMultiTexCoord2iARB, glMultiTexCoord2sARB, glMultiTexCoord3dARB, glMultiTexCoord3fARB, glMultiTexCoord3iARB, glMultiTexCoord3sARB, glMultiTexCoord4dARB, glMultiTexCoord4fARB, glMultiTexCoord4iARB, glMultiTexCoord4sARB, glMultiTexCoord1dvARB, glMultiTexCoord1fvARB, glMultiTexCoord1ivARB, glMultiTexCoord1svARB, glMultiTexCoord2dvARB, glMultiTexCoord2fvARB, glMultiTexCoord2ivARB, glMultiTexCoord2svARB, glMultiTexCoord3dvARB, glMultiTexCoord3fvARB, glMultiTexCoord3ivARB, glMultiTexCoord3svARB, glMultiTexCoord4dvARB, glMultiTexCoord4fvARB, glMultiTexCoord4ivARB, glMultiTexCoord4svARB** - set the current texture coordinates

## C SPECIFICATION

void **glMultiTexCoord1dARB**( GLenum *target*,

```
	GLdouble s )
```

void **glMultiTexCoord1fARB**( GLenum *target*,

```
	GLfloat s )
```

void **glMultiTexCoord1iARB**( GLenum *target*,

```
	GLint s )
```

void **glMultiTexCoord1sARB**( GLenum *target*,

```
	GLshort s )
```

void **glMultiTexCoord2dARB**( GLenum *target*,

```
	GLdouble s,
	GLdouble t )
```

void **glMultiTexCoord2fARB**( GLenum *target*,

```
	GLfloat s,
	GLfloat t )
```

void **glMultiTexCoord2iARB**( GLenum *target*,

```
	GLint s,
	GLint t )
```

void **glMultiTexCoord2sARB**( GLenum *target*,

```
	GLshort s,
	GLshort t )
```

void **glMultiTexCoord3dARB**( GLenum *target*,

```
	GLdouble s,
	GLdouble t,
	GLdouble r )
```

void **glMultiTexCoord3fARB**( GLenum *target*,

```
	GLfloat s,
	GLfloat t,
	GLfloat r )
```

void **glMultiTexCoord3iARB**( GLenum *target*,

```
	GLint s,
	GLint t,
	GLint r )
```

void **glMultiTexCoord3sARB**( GLenum *target*,

```
	GLshort s,
	GLshort t,
	GLshort r )
```

void **glMultiTexCoord4dARB**( GLenum *target*,

```
	GLdouble s,
	GLdouble t,
	GLdouble r,
	GLdouble q )
```

void **glMultiTexCoord4fARB**( GLenum *target*,

```
	GLfloat s,
	GLfloat t,
	GLfloat r,
	GLfloat q )
```

void **glMultiTexCoord4iARB**( GLenum *target*,

```
	GLint s,
	GLint t,
	GLint r,
	GLint q )
```

void **glMultiTexCoord4sARB**( GLenum *target*,

```
	GLshort s,
	GLshort t,
	GLshort r,
	GLshort q )
```

delim $$

## PARAMETERS

- *target*

  Specifies texture unit whose coordinates should be modified.  The number of texture units is implementation dependent, but must be at least two. Must be one of **GL\_TEXTURE**$i$**\_ARB** where 0 ≤ $ i $ \< **GL\_MAX\_TEXTURE\_UNITS\_ARB**, 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 **glMultiTexCoord1dvARB**( GLenum *target*,

```
	const GLdouble *v )
```

void **glMultiTexCoord1fvARB**( GLenum *target*,

```
	const GLfloat *v )
```

void **glMultiTexCoord1ivARB**( GLenum *target*,

```
	const GLint *v )
```

void **glMultiTexCoord1svARB**( GLenum *target*,

```
	const GLshort *v )
```

void **glMultiTexCoord2dvARB**( GLenum *target*,

```
	const GLdouble *v )
```

void **glMultiTexCoord2fvARB**( GLenum *target*,

```
	const GLfloat *v )
```

void **glMultiTexCoord2ivARB**( GLenum *target*,

```
	const GLint *v )
```

void **glMultiTexCoord2svARB**( GLenum *target*,

```
	const GLshort *v )
```

void **glMultiTexCoord3dvARB**( GLenum *target*,

```
	const GLdouble *v )
```

void **glMultiTexCoord3fvARB**( GLenum *target*,

```
	const GLfloat *v )
```

void **glMultiTexCoord3ivARB**( GLenum *target*,

```
	const GLint *v )
```

void **glMultiTexCoord3svARB**( GLenum *target*,

```
	const GLshort *v )
```

void **glMultiTexCoord4dvARB**( GLenum *target*,

```
	const GLdouble *v )
```

void **glMultiTexCoord4fvARB**( GLenum *target*,

```
	const GLfloat *v )
```

void **glMultiTexCoord4ivARB**( GLenum *target*,

```
	const GLint *v )
```

void **glMultiTexCoord4svARB**( GLenum *target*,

```
	const GLshort *v )
```

## PARAMETERS

- *target*

  Specifies texture unit whose coordinates should be modified.  The number of texture units is implementation dependent, but must be at least two. Must be one of **GL\_TEXTURE**$i$**\_ARB**, where 0 ≤ $ i $ \< the implementation-dependent value of  **GL\_MAX\_TEXTURE\_UNITS\_ARB**.

- *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

**glMultiTexCoordARB** specifies texture coordinates in one, two, three, or four dimensions.   **glMultiTexCoord1ARB** sets the current texture coordinates to (*s*, 0, 0, 1); a call to **glMultiTexCoord2ARB** sets them to (*s*, *t*, 0, 1). Similarly, **glMultiTexCoord3ARB** specifies the texture coordinates as (*s*, *t*, *r*, 1), and **glMultiTexCoord4ARB** 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

**glMultiTexCoordARB** is only supported if **GL\_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, **glMultiTexCoordARB** can be called between a call to **glBegin** and the corresponding call to **glEnd**.

It is always the case that **GL\_TEXTURE**$i$**\_ARB** = **GL\_TEXTURE0\_ARB** + $i$.

## ASSOCIATED GETS

**glGet** with argument **GL\_CURRENT\_TEXTURE\_COORDS** with appropriate  texture unit selected.

## SEE ALSO

**glActiveTextureARB(3G)**, **glClientActiveTextureARB(3G)**, **glTexCoord(3G)**, **glTexCoordPointer(3G)**, **glVertex(3G)**
