Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Détecter WebGL

Dans cet exemple, on voit comment détecter un contexte de rendu WebGL et afficher le résultat à l'utilisateur.

Détecter le support WebGL

Dans ce premier exemple, on vérifie si le navigateur prend en charge WebGL. Pour cela, on essaye d'obtenir le contexte de rendu WebGL à partir d'un élément canvas. Le contexte de rendu WebGL est une interface qui permet de connaître et de modifier l'état du moteur graphique WebGL, d'envoyer des données à WebGL et d'exécuter des commandes de dessin.

La gestion d'une machine graphique au sein d'une seule interface n'est pas propre à WebGL. Les autres {̣{Glossary("API")}} graphiques comme le contexte de rendu 2D du canevas. Cependant, les propriétés et variables qui peuvent être manipulées changent d'une API à l'autre.

html
<p>[ On affichera ici le résultat de la détection du support WebGL ]</p>
<button>Cliquez ici pour détecter WebGLRenderingContext</button>
css
body {
  text-align: center;
}
button {
  display: block;
  font-size: inherit;
  margin: auto;
  padding: 0.6em;
}
js
// On exécute tout dans le gestionnaire d'événement
// correspondant au chargement de la fenêtre. De cette
// façon, le DOM est complètement chargé et mis en forme
// avant de le manipuler.
window.addEventListener(
  "load",
  function () {
    var paragraph = document.querySelector("p"),
      button = document.querySelector("button");

    // On ajoute un gestionnaire d'événement pour
    // le clic sur le bouton
    button.addEventListener("click", detectWebGLContext, false);
    function detectWebGLContext() {
      // On crée un élément canvas. Le canvas n'est pas
      // ajouté au document et il n'est donc jamais
      // affiché dans la fenêtre du navigateur
      var canvas = document.createElement("canvas");

      // On récupère le contexte WebGLRenderingContext
      // depuis l'élément canvas.
      var gl =
        canvas.getContext("webgl") || canvas.getContext("experimental-webgl");

      // On affiche le résultat.
      if (gl && gl instanceof WebGLRenderingContext) {
        paragraph.innerHTML = "Félicitations, votre navigateur supporte WebGL.";
      } else {
        paragraph.innerHTML =
          "Échec du contexte WebGL. " +
          "Votre navigateur peut ne pas supporter WebGL.";
      }
    }
  },
  false,
);

Le code source de cet exemple est également disponible sur GitHub.