Spec-Zone.ru › Web APIs

Обнаружение WebGL

  • Предыдущая
  • Следующая

Этот пример демонстрирует, как обнаружить контекст отрисовки WebGL и сообщить пользователю результат.

Обнаружение поддержки WebGL

В этом первом примере мы проверим, поддерживает ли браузер WebGL. Для этого мы попробуем получить контекст отрисовки WebGL из элемента canvas. Контекст отрисовки WebGL — это интерфейс, с помощью которого можно устанавливать и запрашивать состояние графического процессора, отправлять данные в WebGL и выполнять команды отрисовки.

Сохранение состояния графического процессора в рамках одного контекстного интерфейса не уникально для WebGL. Это также делается в других графических API, таких как контекст отрисовки 2D для холста. Однако свойства и переменные, которые можно настраивать, различны для каждого API.

<p>[ Here would go the result of WebGL feature detection ]</p>
<button>Press here to detect WebGLRenderingContext</button>
body {
  text-align: center;
}
button {
  display: block;
  font-size: inherit;
  margin: auto;
  padding: 0.6em;
}
// Run everything inside window load event handler, to make sure
// DOM is fully loaded and styled before trying to manipulate it.
window.addEventListener(
  "load",
  () => {
    const paragraph = document.querySelector("p");
    const button = document.querySelector("button");

    // Adding click event handler to button.
    button.addEventListener("click", detectWebGLContext, false);
    function detectWebGLContext() {
      // Create canvas element. The canvas is not added to the
      // document itself, so it is never displayed in the
      // browser window.
      const canvas = document.createElement("canvas");

      // Get WebGLRenderingContext from canvas element.
      const gl =
        canvas.getContext("webgl") || canvas.getContext("experimental-webgl");

      // Report the result.
      paragraph.textContent =
        gl instanceof WebGLRenderingContext
          ? "Congratulations! Your browser supports WebGL."
          : "Failed. Your browser or device may not support WebGL.";
    }
  },
  false,
);

Исходный код этого примера также доступен на GitHub.

  • Предыдущая
  • Следующая

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/By_example/Detect_WebGL

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API