Light | Dark

# docs.GL

OpenGL 4
OpenGL 3
OpenGL 2
OpenGL ES 3
OpenGL ES 2

# glGenTextures

## Name

glGenTextures — generate texture names

## C Specification

`void glGenTextures(` | GLsizei | n,
| GLuint * | textures`)`;

## Parameters

`n`

  Specifies the number of texture names to be generated.

`textures`

  Specifies an array in which the generated texture names are stored.

## Description

`glGenTextures` returns `n` texture names in `textures`. There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to `glGenTextures`.

The generated textures have no dimensionality; they assume the dimensionality of the texture target to which they are first bound (see glBindTexture).

Texture names returned by a call to `glGenTextures` are not returned by subsequent calls, unless they are first deleted with glDeleteTextures.

## Notes

`glGenTextures` is available only if the GL version is 1.1 or greater.

## Errors

`GL_INVALID_VALUE` is generated if `n` is negative.

`GL_INVALID_OPERATION` is generated if `glGenTextures` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glIsTexture

## Examples

Create a texture object with linear mipmaps and edge clamping.

    GLuint texture_id;
    glGenTextures(1, &texture_id);
    glBindTexture(GL_TEXTURE_2D, texture_id);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

    // texture_data is the source data of your texture, in this case
    // its size is sizeof(unsigned char) * texture_width * texture_height * 4
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texture_width, texture_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, texture_data);
    glGenerateMipmap(GL_TEXTURE_2D); // Unavailable in OpenGL 2.1, use gluBuild2DMipmaps() instead

    glBindTexture(GL_TEXTURE_2D, 0);

## Tutorials

## See Also

glBindTexture, glCopyTexImage1D, glCopyTexImage2D, glDeleteTextures, glGet, glGetTexParameter, glTexImage1D, glTexImage2D, glTexImage3D, glTexParameter

## 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.