WebGLRenderingContext
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
L'interface WebGLRenderingContext
fournit une interface pour le contexte de rendu graphique OpenGL ES 2.0 de la surface de dessin fournie par un élément HTML <canvas>
.
Pour obtenir un accès à un contexte WebGL pour le rendu graphique 2D et/ou 3D, on appellera getContext()
sur un élément <canvas>
en fournissant la chaîne de caractères webgl
:
let canvas = document.getElementById("myCanvas");
let gl = canvas.getContext("webgl");
Une fois le contexte de rendu WebGL obtenu pour le canevas, on peut l'utiliser pour le rendu graphique d'objets à l'intérieur de ce canevas. Le tutoriel WebGL contient de plus amples informations, exemples et ressources pour débuter avec WebGL.
Si vous avez besoin d'un contexte WebGL 2.0, voyez WebGL2RenderingContext
qui permet d'utiliser une implémentation avec des graphismes OpenGL ES 3.0.
Constantes
Voir la page sur les constantes WebGL.
Le contexte WebGL
Les propriétés et méthodes suivantes fournissent des informations et fonctionnalités générales pour manipuler le contexte WebGL :
WebGLRenderingContext.canvas
-
Une référence en lecture seule vers l'objet
HTMLCanvasElement
correspondant. Peut valoirnull
si le contexte n'est pas associé à un élément<canvas>
. WebGLRenderingContext.commit()
Expérimental-
Pousse les frames sur l'élément
HTMLCanvasElement
, si le contexte n'est pas directement rattaché à un canevas donné. WebGLRenderingContext.drawingBufferWidth
-
La largeur, en lecture seule, du tampon de dessin courant. Celle-ci devrait correspondre à la largeur de l'élément canevas associé à ce contexte.
WebGLRenderingContext.drawingBufferHeight
-
La hauteur, en lecture seule, du tampon de dessin courant. Celle-ci devrait correspondre à la hauteur de l'élément canevas associé à ce contexte.
WebGLRenderingContext.getContextAttributes()
-
Renvoie un objet
WebGLContextAttributes
qui contient les paramètres de contextes réels. Peut renvoyernull
si le contexte est perdu. WebGLRenderingContext.isContextLost()
-
Renvoie
true
si le contexte est perdu etfalse
sinon. WebGLRenderingContext.makeXRCompatible()
-
S'assure que le contexte est compatible avec le matériel de réalité mixte, recréant si besoin le contexte avec une nouvelle configuration. Cette méthode peut être utilisée pour démarrer une application dont l'affichage commence en 2D puis passe ensuite dans un mode de réalité virtuelle ou augmentée.
Vue et rognage
WebGLRenderingContext.scissor()
-
Définit la boîte de découpe (scissor box).
WebGLRenderingContext.viewport()
-
Définit la zone d'affichage (viewport).
Informations sur l'état
WebGLRenderingContext.activeTexture()
-
Sélectionne l'unité de texture active.
WebGLRenderingContext.blendColor()
-
Définit la source et la destination des facteurs de fusion.
WebGLRenderingContext.blendEquation()
-
Définit l'équation de fusion RGB et l'équation de fusion alpha avec une seule équation.
WebGLRenderingContext.blendEquationSeparate()
-
Définit l'équation de fusion RGB et l'équation de fusion alpha séparément.
WebGLRenderingContext.blendFunc()
-
Definit la fonction utilisée pour l'arithmétique de la fusion des pixels.
WebGLRenderingContext.blendFuncSeparate()
-
Definit séparément la fonction utilisée pour l'arithmétique de la fusion des pixels pour les composantes RGB d'une part et alpha d'autre part.
WebGLRenderingContext.clearColor()
-
Définit les valeurs de couleur utilisées lors du nettoyage des tampons de couleur.
WebGLRenderingContext.clearDepth()
-
Définit la valeur de profondeur utilisée lors du nettoyage du tampon de profondeur.
WebGLRenderingContext.clearStencil()
-
Définit la valeur du pochoir utilisée lors du nettoyage du tampon de pochoir.
WebGLRenderingContext.colorMask()
-
Définit les composantes de couleur à activer ou à désactiver lors du dessin ou du rendu dans un objet
WebGLFramebuffer
. WebGLRenderingContext.cullFace()
-
Indique si les polygones masqués en face arrière ou en face avant sont coupés (voir l'article Wikipédia sur Back-face culling).
WebGLRenderingContext.depthFunc()
-
Indique une fonction qui compare la profondeur du pixel à venir avec la valeur actuelle de profondeur sur le tampon.
WebGLRenderingContext.depthMask()
-
Indique si l'écriture sur le tampon de profondeur est activée ou désactivée.
WebGLRenderingContext.depthRange()
-
Indique la correspondance pour l'intervalle de profondeur entre les coordonnées normalisées de l'appareil et les coordonnées de la fenêtre ou de la zone d'affichage.
WebGLRenderingContext.disable()
-
Désactive les capacités spécifiques à WebGL pour ce contexte.
WebGLRenderingContext.enable()
-
Active les capacités spécifiques à WebGL pour ce contexte.
WebGLRenderingContext.frontFace()
-
Indique si les polygones font face vers l'avant ou vers l'arrière en indiquant une orientation d'enroulement.
WebGLRenderingContext.getParameter()
-
Renvoie une valeur pour le nom de paramètre passé en argument.
WebGLRenderingContext.getError()
-
Renvoie des informations sur l'erreur.
WebGLRenderingContext.hint()
-
Définit les indications pour certains comportements. L'interprétation de ces indications dépend de l'implémentation.
WebGLRenderingContext.isEnabled()
-
Teste si une fonctionnalité WebGL donnée est activée ou non pour ce contexte.
WebGLRenderingContext.lineWidth()
-
Définit la largeur des lignes pour les lignes matricielles.
WebGLRenderingContext.pixelStorei()
-
Définit le mode de stockage des pixels.
WebGLRenderingContext.polygonOffset()
-
Définit les facteurs d'échelle et les unités pour calculer les valeurs de profondeur.
WebGLRenderingContext.sampleCoverage()
-
Définit les paramètres de couverture multi-échantillonnage pour les effets anti-crénelage.
WebGLRenderingContext.stencilFunc()
-
Définit la fonction et la valeur de référence pour les fonctions avant et arrière pour le test du pochoir.
WebGLRenderingContext.stencilFuncSeparate()
-
Définit la fonction avant et/ou arrière et la valeur de référence pour le test du pochoir.
WebGLRenderingContext.stencilMask()
-
Contrôle l'activation/la désactivation des modes d'écriture avant et arrière pour les bits individuels sur les plans du pochoir.
WebGLRenderingContext.stencilMaskSeparate()
-
Contrôle l'activation/la désactivation des modes d'écriture avant et/ou arrière pour les bits individuels sur les plans du pochoir.
WebGLRenderingContext.stencilOp()
-
Définit les actions de test du pochoir pour l'avant et pour l'arrière.
WebGLRenderingContext.stencilOpSeparate()
-
Définit les actions de test du pochoir pour l'avant et/ou pour l'arrière.
Tampons
WebGLRenderingContext.bindBuffer()
-
Lie un objet
WebGLBuffer
à une cible donnée. WebGLRenderingContext.bufferData()
-
Met à jour les données du tampon.
WebGLRenderingContext.bufferSubData()
-
Met à jour les données du tampon à partir d'un décalage donné.
WebGLRenderingContext.createBuffer()
-
Crée un objet
WebGLBuffer
. WebGLRenderingContext.deleteBuffer()
-
Supprime un objet
WebGLBuffer
. WebGLRenderingContext.getBufferParameter()
-
Renvoie des informations à propos du tampon.
WebGLRenderingContext.isBuffer()
-
Renvoie un booléen indiquant si le tampon passé est valide.
Tampons d'image (framebuffers)
WebGLRenderingContext.bindFramebuffer()
-
Lie un objet
WebGLFrameBuffer
à une cible donnée. WebGLRenderingContext.checkFramebufferStatus()
-
Renvoie le statut du tampon d'image (framebuffer).
WebGLRenderingContext.createFramebuffer()
-
Crée un objet
WebGLFrameBuffer
. WebGLRenderingContext.deleteFramebuffer()
-
Supprime un objet
WebGLFrameBuffer
. WebGLRenderingContext.framebufferRenderbuffer()
-
Attache un objet
WebGLRenderingBuffer
à un objetWebGLFrameBuffer
. WebGLRenderingContext.framebufferTexture2D()
-
Attache une image de texture à un objet
WebGLFrameBuffer
. WebGLRenderingContext.getFramebufferAttachmentParameter()
-
Renvoie des informations à propos du tampon d'image (framebuffer).
WebGLRenderingContext.isFramebuffer()
-
Renvoie un booléen indiquant si l'objet
WebGLFrameBuffer
passé est valide. WebGLRenderingContext.readPixels()
-
Lit un bloc de pixels à partir du
WebGLFrameBuffer
.
Tampons de rendu
WebGLRenderingContext.bindRenderbuffer()
-
Lie un objet
WebGLRenderBuffer
à une cible donnée. WebGLRenderingContext.createRenderbuffer()
-
Crée un objet
WebGLRenderBuffer
. WebGLRenderingContext.deleteRenderbuffer()
-
Supprime un objet
WebGLRenderBuffer
. WebGLRenderingContext.getRenderbufferParameter()
-
Renvoie des informations à propos du tampon de rendu.
WebGLRenderingContext.isRenderbuffer()
-
Renvoie un booléen indiquant si l'objet
WebGLRenderingBuffer
passé est valide. WebGLRenderingContext.renderbufferStorage()
-
Crée un magasin de données pour le tampon de rendu.
Textures
WebGLRenderingContext.bindTexture()
-
Lie un objet
WebGLTexture
à une cible donnée. WebGLRenderingContext.compressedTexImage2D()
-
Indique une image de texture 2D dans un format compressé.
WebGLRenderingContext.compressedTexSubImage2D()
-
Indique une sous-image de texture 2D dans un format compressé.
WebGLRenderingContext.copyTexImage2D()
-
Copie une image de texture 2D.
WebGLRenderingContext.copyTexSubImage2D()
-
Copie une sous-image de texture 2D.
WebGLRenderingContext.createTexture()
-
Crée un objet
WebGLTexture
. WebGLRenderingContext.deleteTexture()
-
Supprime un objet
WebGLTexture
. WebGLRenderingContext.generateMipmap()
-
Génère un ensemble de mipmaps pour un objet
WebGLTexture
. WebGLRenderingContext.getTexParameter()
-
Renvoie des informations à propos de la texture.
WebGLRenderingContext.isTexture()
-
Renvoie un booléen qui indique sur l'objet
WebGLTexture
passé est valide. WebGLRenderingContext.texImage2D()
-
Indique une image de texture 2D.
WebGLRenderingContext.texSubImage2D()
-
Met à jour le sous-rectangle de l'objet
WebGLTexture
courant. WebGLRenderingContext.texParameterf()
-
Définit les paramètres de texture.
WebGLRenderingContext.texParameteri()
-
Définit les paramètres de texture.
Programmes et shaders
WebGLRenderingContext.attachShader()
-
Attache un
WebGLShader
à unWebGLProgram
. WebGLRenderingContext.bindAttribLocation()
-
Lie un index de sommet générique à une variable d'attribut nommée.
WebGLRenderingContext.compileShader()
-
Compile un
WebGLShader
. WebGLRenderingContext.createProgram()
-
Crée un
WebGLProgram
. WebGLRenderingContext.createShader()
-
Crée un
WebGLShader
. WebGLRenderingContext.deleteProgram()
-
Supprime un
WebGLProgram
. WebGLRenderingContext.deleteShader()
-
Supprime un
WebGLShader
. WebGLRenderingContext.detachShader()
-
Détache un
WebGLShader
. WebGLRenderingContext.getAttachedShaders()
-
Renvoie une liste d'objets
WebGLShader
attachés à unWebGLProgram
. WebGLRenderingContext.getProgramParameter()
-
Renvoie des informations à propos du programme.
WebGLRenderingContext.getProgramInfoLog()
-
Renvoie le journal d'informations pour un objet
WebGLProgram
. WebGLRenderingContext.getShaderParameter()
-
Renvoie des informations à propos du shader.
WebGLRenderingContext.getShaderPrecisionFormat()
-
Renvoie un objet
WebGLShaderPrecisionFormat
décrivant la précision pour le format numérique du shader. WebGLRenderingContext.getShaderInfoLog()
-
Renvoie le journal d'informations pour un objet
WebGLShader
. WebGLRenderingContext.getShaderSource()
-
Renvoie le code source d'un
WebGLShader
sous la forme d'une chaîne de caractères. WebGLRenderingContext.isProgram()
-
Renvoie un booléen indiquant si l'objet
WebGLProgram
passé est valide. WebGLRenderingContext.isShader()
-
Renvoie un booléen indiquant si l'objet
WebGLShader
passé est valide. WebGLRenderingContext.linkProgram()
-
Effectue les liaisons pour l'objet
WebGLProgram
passé. WebGLRenderingContext.shaderSource()
-
Définit le code source d'un
WebGLShader
. WebGLRenderingContext.useProgram()
-
Utilise le
WebGLProgram
indiqué comme partie de l'état de rendu courant. WebGLRenderingContext.validateProgram()
-
Valide un
WebGLProgram
.
Uniformes et attributs
WebGLRenderingContext.disableVertexAttribArray()
-
Désactive un tableau d'attribut de sommet à une position donnée.
WebGLRenderingContext.enableVertexAttribArray()
-
Active un tableau d'attribut de sommet à une position donnée.
WebGLRenderingContext.getActiveAttrib()
-
Renvoie des informations à propos d'une variable d'attribut active.
WebGLRenderingContext.getActiveUniform()
-
Renvoie des informations à propos d'une variable d'uniforme active.
WebGLRenderingContext.getAttribLocation()
-
Renvoie l'emplacement d'une variable d'attribut.
WebGLRenderingContext.getUniform()
-
Renvoie la valeur d'une variable d'uniforme à un emplacement donné.
WebGLRenderingContext.getUniformLocation()
-
Renvoie l'emplacement d'une variable d'uniforme.
WebGLRenderingContext.getVertexAttrib()
-
Renvoie les informations à propos d'un attribut de sommet à une position donnée.
WebGLRenderingContext.getVertexAttribOffset()
-
Renvoie l'adresse d'un attribut de sommet donné.
WebGLRenderingContext.uniform[1234][fi][v]()
-
Définit une valeur pour une variable d'uniforme.
WebGLRenderingContext.uniformMatrix[234]fv()
-
Définit la valeur matricielle pour une variable d'uniforme.
WebGLRenderingContext.vertexAttrib[1234]f[v]()
-
Définit une valeur pour un attribut de sommet générique.
WebGLRenderingContext.vertexAttribPointer()
-
Définit les formats de données et les emplacements des attributs de sommet dans un tableau d'attributs de sommet.
Dessiner les tampons
WebGLRenderingContext.clear()
-
Nettoie les tampons indiqués avec les valeurs prédéfinies.
WebGLRenderingContext.drawArrays()
-
Effectue le rendu des primitives à partir des données de tableaux.
WebGLRenderingContext.drawElements()
-
Effectue le rendu des primitives à partir des données d'élément.
WebGLRenderingContext.finish()
-
Bloque l'exécution jusqu'à ce que les commandes précédemment appelées soient terminées.
WebGLRenderingContext.flush()
-
Vide les différents tampons de commandes, entraînant l'exécution la plus rapide possible pour toutes les commandes.
Utiliser les extensions
Ces méthodes permettent de gérer les extensions WebGL :
WebGLRenderingContext.getSupportedExtensions()
-
Renvoie un tableau (
Array
) de chaînes de caractères (DOMString
). Les éléments sont les noms des extensions WebGL prises en charge. WebGLRenderingContext.getExtension()
-
Renvoie un objet d'extension.
Spécifications
Specification |
---|
WebGL Specification # 5.14 |
Compatibilité des navigateurs
BCD tables only load in the browser