Spec-Zone.ru › Web APIs

VRDisplay: метод exitPresent()

Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её всё ещё поддерживать, она может быть уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или поддерживаться только для совместимости. Избегайте её использования и, при возможности, обновите существующий код; обратитесь к таблице совместимости в конце этой страницы, чтобы принять решение. Помните, что эта функция может перестать работать в любое время.

Нестандартно: Эта функция нестандартна и не соответствует стандартам. Не используйте её на производственных сайтах, ориентированных на веб: она не будет работать для каждого пользователя. Также могут быть значительные различия в реализации, и поведение может измениться в будущем.

Метод exitPresent() интерфейса VRDisplay останавливает VRDisplay презентацию сцены.

Примечание: Этот метод был частью старого API WebVR. Он был заменён API устройств WebXR.

Синтаксис

exitPresent()

Параметры

Нет.

Возвращаемое значение

Обещание, которое выполняется, как только завершится презентация. Если VRDisplay не презентует, когда exitPresent() вызывается, обещание отклонится.

Примеры

if (navigator.getVRDisplays) {
  console.log("WebVR 1.1 supported");
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then((displays) => {
    // If a display is available, use it to present the scene
    if (displays.length > 0) {
      vrDisplay = displays[0];
      console.log("Display found");
      // Starting the presentation when the button is clicked: It can only be called in response to a user gesture
      btn.addEventListener("click", () => {
        if (btn.textContent === "Start VR display") {
          vrDisplay.requestPresent([{ source: canvas }]).then(() => {
            console.log("Presenting to WebVR display");

            // Set the canvas size to the size of the vrDisplay viewport

            const leftEye = vrDisplay.getEyeParameters("left");
            const rightEye = vrDisplay.getEyeParameters("right");

            canvas.width =
              Math.max(leftEye.renderWidth, rightEye.renderWidth) * 2;
            canvas.height = Math.max(
              leftEye.renderHeight,
              rightEye.renderHeight,
            );

            // stop the normal presentation, and start the vr presentation
            window.cancelAnimationFrame(normalSceneFrame);
            drawVRScene();

            btn.textContent = "Exit VR display";
          });
        } else {
          vrDisplay.exitPresent();
          console.log("Stopped presenting to WebVR display");

          btn.textContent = "Start VR display";

          // Stop the VR presentation, and start the normal presentation
          vrDisplay.cancelAnimationFrame(vrSceneFrame);
          drawScene();
        }
      });
    }
  });
}

Примечание: Вы можете увидеть этот полный код на raw-webgl-example.

Спецификации

Этот метод был частью старого API WebVR, который был заменён API устройств WebXR. Он больше не соответствует стандартам.

До тех пор, пока все браузеры не реализуют новые API WebXR, рекомендуется полагаться на фреймворки, такие как A-Frame, Babylon.js или Three.js, или полифил, для разработки приложений WebXR, которые будут работать во всех браузерах. Прочитайте руководство Meta's Porting from WebVR to WebXR для получения дополнительной информации.

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
exitPresent Нет 15–79 98
64–98Поддержка macOS была включена в Firefox 64.
55–98Поддержка Windows была включена в Firefox 55.
Нет Нет Нет 55–98 Нет Нет
6.0Поддержка Google Cardboard в Samsung Internet 7.0.
Нет

См. также

  • API WebVR

© 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/VRDisplay/exitPresent

Spec-Zone.ru

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