WebGLRenderingContext.texImage2D()

La méthode WebGLRenderingContext.texImage2D() de l'API WebGL spécifie une image de texture bidimensionnelle.

Syntaxe

js
// WebGL1:
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, ArrayBufferView? pixels);
void gl.texImage2D(cible, niveau, formatinterne, format, type, ImageData? pixels);
void gl.texImage2D(cible, niveau, formatinterne, format, type, HTMLImageElement? pixels);
void gl.texImage2D(cible, niveau, formatinterne, format, type, HTMLCanvasElement? pixels);\void gl.texImage2D(cible, niveau, formatinterne, format, type, HTMLVideoElement? pixels);

// WebGL2:
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, GLintptr decalage);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, HTMLCanvasElement source);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, HTMLImageElement source);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, HTMLVideoElement source);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, ImageBitmap source);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, ImageData source);
void gl.texImage2D(cible, niveau, formatinterne, largeur, hauteur, bordure, format, type, ArrayBufferView donneesSrc, decalageSrc);

Paramètres

cible

Un GLenum (en-US) indiquant le point de liaison (cible) de la texture active. Valeurs possibles :

  • gl.TEXTURE_2D : une texture bidimensionnelle ;
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X : face X positive pour une texture mappée sur un cube ;
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X : face X négative pour une texture mappée sur un cube ;
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y : face Y positive pour une texture mappée sur un cube ;
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y : face Y négative pour une texture mappée sur un cube ;
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z : face Z positive pour une texture mappée sur un cube ;
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z : face Z négative pour une texture mappée sur un cube.
niveau

Un GLint (en-US) indiquant le niveau de détail. Le niveau 0 est le niveau de l'image de base et le niveau n est le n-ième niveau de réduction du mipmap.

formatinterne

Un GLint (en-US) indiquant les composantes de couleur dans la texture. Valeurs possibles :

  • gl.ALPHA : ignore les composantes rouge, vert et bleu, et lit la composante alpha ;
  • gl.RGB : ignore la composante alpha et lit les composantes rouge, vert et bleu ;
  • gl.RGBA : les composantes rouge, vert, bleu et alpha sont lues à partir du tampon des couleurs ;
  • gl.LUMINANCE : chaque composante de couleur est une composante de luminance, alpha vaut 1,0 ;
  • gl.LUMINANCE_ALPHA : chaque composante est une composante de luminance/alpha ;
  • lors de l'utilisation de l'extension WEBGL_depth_texture (en-US) :
    • gl.DEPTH_COMPONENT
    • gl.DEPTH_STENCIL
  • lors de l'utilisation de l'extension EXT_sRGB (en-US) :
    • ext.SRGB_EXT
    • ext.SRGB_ALPHA_EXT
  • Lors de l'utilisation d'un WebGL 2 context, les valeurs suivantes sont en outre disponibles :
    • gl.R8
    • gl.R16F
    • gl.R32F
    • gl.R8UI
    • gl.RG8
    • gl.RG16F
    • gl.RG32F
    • gl.RG8UI
    • gl.RG16UI
    • gl.RG32UI
    • gl.RGB8
    • gl.SRGB8
    • gl.RGB565
    • gl.R11F_G11F_B10F
    • gl.RGB9_E5
    • gl.RGB16F
    • gl.RGB32F
    • gl.RGB8UI
    • gl.RGBA8
    • gl.SRGB8_APLHA8
    • gl.RGB5_A1
    • gl.RGB10_A2
    • gl.RGBA4
    • gl.RGBA16F
    • gl.RGBA32F
    • gl.RGBA8UI
largeur

Un GLsizei (en-US) indiquant la largeur de la texture.

hauteur

Un GLsizei (en-US) indiquant la hauteur de la texture.

bordure

Un GLint (en-US) indiquant la largeur de la bordure. Doit être 0.

format

Un GLenum (en-US) indiquant le format des données de texel. En WebGL 1, cela doit être identique à formatinterne (voir ci-dessus). En WebGL 2, les combinaisons sont répertoriées dans ce tableau.

type

Un GLenum (en-US) indiquant le type de données des données de texel. Valeurs possibles :

  • gl.UNSIGNED_BYTE : 8 bits par canal pour gl.RGBA ;
  • gl.UNSIGNED_SHORT_5_6_5 : 5 bits de rouge, 6 bits de vert, 5 bits de bleu ;
  • gl.UNSIGNED_SHORT_4_4_4_4 : 4 bits de rouge, 4 bits de vert, 4 bits de bleu, 4 bits d'alpha ;
  • gl.UNSIGNED_SHORT_5_5_5_1 : 5 bits de rouge, 5 bits de vert, 5 bits de bleu, 1 bit d'alpha ;
  • lors de l'utilisation de l'extension WEBGL_depth_texture (en-US) :
    • gl.UNSIGNED_SHORT
    • gl.UNSIGNED_INT
    • ext.UNSIGNED_INT_24_8_WEBGL (constante fournie par l'extension)
  • lors de l'utilisation de l'extension OES_texture_float (en-US) :
    • gl.FLOAT
  • lors de l'utilisation de l'extension OES_texture_half_float (en-US) :
    • ext.HALF_FLOAT_OES (constante fournie par l'extension)
  • lors de l'utilisation d'un WebGL 2 context, les valeurs suivantes sont en outre disponibles :
    • gl.BYTE
    • gl.UNSIGNED_SHORT
    • gl.SHORT
    • gl.UNSIGNED_INT
    • gl.INT
    • gl.HALF_FLOAT
    • gl.FLOAT
    • gl.UNSIGNED_INT_2_10_10_10_REV
    • gl.UNSIGNED_INT_10F_11F_11F_REV
    • gl.UNSIGNED_INT_5_9_9_9_REV
    • gl.UNSIGNED_INT_24_8
    • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (les pixels doivent être null)
pixels

L'un des objets suivants peut être utilisé comme source de pixels pour la texture :

decalage

(WebGL 2 seulement) Un décalage en octets GLintptr (en-US) dans le magasin de données du WebGLBuffer. Utilisé pour télécharger des données vers la WebGLTexture liée, depuis le WebGLBuffer lié à la cible PIXEL_UNPACK_BUFFER.

Valeur retournée

Aucune.

Exemples

js
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);

Spécifications

Specification
WebGL Specification
# 5.14.8
WebGL 2.0 Specification
# 3.7.6

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi