recursal/MDN huggingface dataset:
Document.enableStyleSheetsForSet()
==================================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

現在のスタイルシートセットの中で指定された名前に一致するスタイルシートを有効化し、それ以外のスタイルシートを (常に有効になるタイトルなしのものを除いて) 無効化します。

構文
--


```js
enableStyleSheetsForSet(name);
```

### 引数

`name`

有効にするスタイルシートの名前。この名前に一致する題名を持ったスタイルシートはすべて有効化され、他の題名を持つスタイルシートは無効化されます。引数 *name* に空文字列を指定すると、すべての代替および推奨スタイルシートを無効化します (常設スタイルシート、つまり、 `title` 属性がないものを除く)。

### 返値

なし (`undefined`)。

メモ
--

* 題名は大文字と小文字を区別して照合します。
* このメソッドに `null` の *name* を指定して呼び出しても効果はありません。すべての代替および推奨スタイルシートを無効化したいのであれば、空文字列 "" を渡す**必要があります**。
* 題名がないスタイルシートは、このメソッドの影響を受けません。
* このメソッドは `document.lastStyleSheetSet` や `document.preferredStyleSheetSet` の値に影響しません。
例
-


```js
document.enableStyleSheetsForSet("Some style sheet set name");
```

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Stylesheet`
* `Document.styleSheets`
* `document.lastStyleSheetSet`
* `document.preferredStyleSheetSet`
* `document.selectedStyleSheetSet`
* `document.enableStyleSheetsForSet()`
* 外部スタイルシートでタイトルを正しく使用する
InputDeviceCapabilities: firesTouchEvents プロパティ
===============================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

**`InputDeviceCapabilities.firesTouchEvents`** は読み取り専用プロパティで、機器がタッチイベントを配信されるかどうかを示す論理値を返します。

このプロパティを使用して、すでにタッチイベントハンドラーによって処理されている可能性のあるアクションを表すマウスイベントを検出することができます。これは必ずしも機器がタッチ画面であることを意味しているわけではありません。例えば、スタイラスやマウス機器は通常、モバイルブラウザー上でタッチイベントを生成します。

構文
--


```js
const boolean = InputDeviceCapabilities.firesTouchEvents
```

### 返値

論理値 (`Boolean`) です。

例
-


```js
myButton.addEventListener("mousedown", (e) => {
  if (!e.sourceCapabilities.firesTouchEvents) myButton.classList.add("pressed");
});
```

仕様書
---

| Specification |
| --- |
| Input Device Capabilities # dom-inputdevicecapabilities-firestouchevents |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
InputDeviceCapabilities: InputDeviceCapabilities() コンストラクター
===========================================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

`InputDeviceCapabilities()` コンストラクターは新しい `InputDeviceCapabilities` オブジェクトを作成し、タッチイベントを生成する物理機器に関する情報を提供します。

構文
--


```js
new InputDeviceCapabilities()
new InputDeviceCapabilities(InputDeviceCapabilitiesInit)
```

### 返値

`InputDeviceCapabilities` インターフェイスのインスタンスです。

### 引数

`InputDeviceCapabilitiesInit` 省略可

一連の機器能力を格納する辞書オブジェクト。以下のプロパティを持ちます。

* `fireTouchEvents`: 機器でタッチイベントが配信されるかどうかを示す論理値です。

仕様書
---

| Specification |
| --- |
| Input Device Capabilities # dom-inputdevicecapabilities-constructor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PopStateEvent: PopStateEvent() コンストラクター
=======================================

**`PopStateEvent()`** コンストラクターは、新しい `PopStateEvent` オブジェクトを生成します。

**メモ:** ウェブ開発者は通常このコンストラクタを呼び出す必要はありません。ブラウザーは `popstate` イベントを発行するときにこれらのオブジェクトを生成するからです。

構文
--


```js
new PopStateEvent(type, options)
```

### 引数

`type`

 イベントの名前の文字列です。
 大文字と小文字は区別され、ブラウザーはこれを `popstate` に設定します。


`options` 省略可

オブジェクトで、 *`Event()` で定義されているプロパティに加えて*、以下のプロパティがあります。

`state` 省略可

状態を表すオブジェクトです。実質的には `history.pushState()` または `history.replaceState()` の呼び出しで指定された値です。設定されていない場合、既定値は `null` です。


### 返値

新しい `PopStateEvent` オブジェクトです。

仕様書
---

| Specification |
| --- |
| HTML Standard # the-popstateevent-interface |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `history.pushState()`
* `history.replaceState()`
* `popstate` イベント
PopStateEvent: state プロパティ
==========================

**`state`** は `PopStateEvent` インターフェイスの読み取り専用プロパティで、このイベントが生成されたときに格納された状態を表します。

実質的には、 `history.pushState()` または `history.replaceState()` の呼び 出しによって指定された値です。

値
-

オブジェクト、または `null` です。

例
-

以下のコードでは、 `pushState()` メソッドを使って値を履歴にプッシュしたときの `state` の値を記録しています。


```js
// Log the state of
addEventListener("popstate", (event) => {
  console.log("State received: ", event.state);
});

// Now push something on the stack
history.pushState({ name: "Example" }, "pushState example", "page1.html");
history.pushState(
  { name: "Another example" },
  "pushState example",
  "page1.html",
);
```


次のようにログ出力します。
```

State received: { name: "Example" }
State received: { name: "Another example" }
```

仕様書
---

| Specification |
| --- |
| HTML Standard # dom-popstateevent-state-dev |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `PopStateEvent()` コンストラクター
* `History.state`
VRDisplay.getImmediatePose()
============================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`getImmediatePose()`** は `VRDisplay` インターフェイスのメソッドで、 `VRDisplay` の現在のポーズを定義した `VRPose` オブジェクトを返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

構文
--


```js
getImmediatePose();
```

### 引数

なし．

### 返値

`VRPose` オブジェクトです。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.stageParameters
=========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`stageParameters`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、 `VRDisplay` がルームスケール体験をサポートしている場合に、ルームスケールパラメーターを持つ `VRStageParameters` オブジェクトを返します．

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

### 値

`VRDisplay` のルームスケールパラメーターを持つ `VRStageParameters` オブジェクトです。 `VRDisplay` がルームスケール体験をサポートしていない場合は `null` です。

例
-

例については `VRStageParameters` を参照してください。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.resetPose()
=====================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`resetPose()`** は `VRDisplay` インターフェイスのメソッドで、`VRDisplay` のポーズをリセットして、現在の `VRPose.position` と `VRPose.orientation` を "原点/ゼロ位置" の値として扱います。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

`resetPost()` を呼出した後は、 `VRDisplay.getPose()`/`VRDisplay.getImmediatePose()` から返された未来予測ポーズは、`resetPose()` が最後に呼び出された時点からの相対的な `VRDisplay` の位置になります。また、`resetPose()` が最後に呼び出された時点の VR ディスプレイのヨー (yaw) を前方として扱います。

VRDisplay の報告されるロール (roll) とピッチ (pitch) は重力に対して相対的なので `resetPose()` を呼んでも変化しません。 `resetPose()` を呼び出すと `VRStageParameters.sittingToStandingTransform` 行列が変更される場合があります。

構文
--


```js
resetPose();
```

### 引数

なし。

### 返値

なし (`undefined`)。

例
-


```js
// Assuming vrDisplay already contains a VRDisplay object,
// and we have a <button> referenced inside btn
btn.addEventListener("click", function () {
  vrDisplay.resetPose();
  console.log("Current pose set as origin/center");
});
```

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.depthNear
===================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`depthNear`** は `VRDisplay` インターフェイスのプロパティで、 eye view frustum (ビューフラスタム；つまりシーンの可視領域の境界) の near 平面を定義している z-depth の取得と設定を行います。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

一般的には、この値をそのままにしておきますが、遅いコンピューターでパフォーマンスを向上させようとしている場合や、ニアバウンダリーをより遠くに作ることで UI が意味をなす場合などは、この値を大きくするとよいでしょう。

値
-

double 値で z-depth をメートル単位で表します。初期値は `0.01` です。

例
-


```js
var vrDisplay;

navigator.getVRDisplays().then(function (displays) {
  vrDisplay = displays[0];
  vrDisplay.depthNear = 1.0;
  vrDisplay.depthFar = 7500.0;
});
```

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.exitPresent()
=======================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`exitPresent()`** は `VRDisplay` インターフェイスのメソッドで、この `VRDisplay` がシーンを表示するのを停止します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

構文
--


```js
exitPresent();
```

### 引数

なし。

### 返値

表示が終了したら解決するプロミスです。この `VRDisplay` が、 `exitPresent()` が呼び出されたときに表示を行っていない場合、このプロミスは拒否されます。

例
-


```js
if (navigator.getVRDisplays) {
  console.log("WebVR 1.1 supported");
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then(function (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", function () {
        if (btn.textContent === "Start VR display") {
          vrDisplay.requestPresent([{ source: canvas }]).then(function () {
            console.log("Presenting to WebVR display");

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

            var leftEye = vrDisplay.getEyeParameters("left");
            var 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 で見ることができます。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.isPresenting
======================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`isPresenting`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、 `VRDisplay` が現在コンテンツを表示中かどうかを示す論理値を返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

### 値

論理値です。 `true` の場合はそのディスプレイが表示中であることを意味します。 `false` はそうではないことを示します。

例
-


```js
function onVRExitPresent() {
  // No sense in exiting presentation if we're not actually presenting.
  // (This may happen if we get an event like vrdisplaydeactivate when
  // we weren't presenting.)
  if (!vrDisplay.isPresenting) return;
  vrDisplay.exitPresent().then(
    function () {
      // Nothing to do because we're handling things in onVRPresentChange.
    },
    function (err) {
      var errMsg = "exitPresent failed.";
      if (err && err.message) {
        errMsg += "<br/>" + err.message;
      }
      VRSamplesUtil.addError(errMsg, 2000);
    },
  );
}
```


**メモ:** このコードスニペットは Google's VR Presentation demo から取ったものです。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.getLayers()
=====================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`getLayers()`** は `VRDisplay` インターフェイスのメソッドで、 `VRDisplay` が現在表示しているレイヤーを返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

構文
--


```js
getLayers();
```

### 引数

なし．

### 返値

`VRDisplay` が表示中の場合、このメソッドは現在表示中の `VRLayerInit` オブジェクトの配列を返します（現在 `VRDisplayCapabilities.maxLayers` は常に 1 なので、これは 1 つになります）。 `VRDisplay`が表示されていない場合、このメソッドは空の配列を返します。

例
-

例については `VRLayerInit` を参照してください。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.getPose()
===================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`getPose()`** は `VRDisplay` インターフェイスのメソッドで、現在のフレームが実際に描画される時点の未来の `VRDisplay` の予測ポーズを決める `VRPose` オブジェクトを返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

こちらでも非推奨でした。 — 代わりに `VRDisplay.getFrameData()` で `VRPose` オブジェクトを受け取ってください。

構文
--


```js
getPose();
```

### 引数

なし．

### 返値

`VRPose` オブジェクトです。

例
-

`VRDisplay` オブジェクトへの参照を得ると、ディスプレイの現在のポーズを表す `VRPose` を取得することができるようになります。


```js
if(navigator.getVRDisplays) {
  console.log('WebVR 1.1 supported');
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then(function(displays) {
    // If a display is available, use it to present the scene
    if(displays.length > 0) {
      vrDisplay = displays[0];
      console.log('Display found');

          // Return the current VRPose object for the display
          var pose = vrDisplay.getPose();

          ...

    }
  });
}
```


しかし、非推奨ではない `VRFrameData` オブジェクト（`VRDisplay.getFrameData()`で取得）の `pose` プロパティを使用して、表示するためにディスプレイに送信する前に各フレームの現在の姿勢を取得することをお勧めします。これはアプリのレンダリングループの各反復処理で行われるため、ポーズデータが最新であることを確認することができます。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.displayName
=====================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`displayName`** は `VRDisplay` インターフェイスの読み取り専用プロパティで、 `VRDisplay` を識別する人間が読める名前を返します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

これは通常、 "Oculus VR HMD (HMD)" や "Oculus VR HMD (Sensor)" のようなものになります。

値
-

特定の VR ディスプレイの人間にとって読みやすい名前を含む文字列です。

例
-

例については `VRDisplayCapabilities` を参照してください。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.requestPresent()
==========================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`requestPresent()`** は `VRDisplay` インターフェイスのメソッドで、`VRDisplay` へのシーン表示を開始します。

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

構文
--


```js
requestPresent(layers);
```

### 引数

`layers`

表示したいシーンを表す `VRLayerInit` オブジェクトの配列です。現時点では、指定できるのは最小 0 要素、最大 1 要素です。

### 返値

プレゼンテーションが開始されると解決されるプロミスです。プロミスの履行または拒否にはいくつかのルールがあります。

* `VRDisplayCapabilities.canPresent` が false の場合、または VRLayer 配列に `VRDisplayCapabilities.maxLayers` を超えるレイヤーがある場合、プロミスは拒否されます。
* `requestPresent()` が呼び出された時、 `VRDisplay` が既に表示していた場合、 `VRDisplay` は表示している `VRLayer` 配列を更新します。
* もし `requestPresent()` の呼び出しが `VRDisplay` が既に表示されている状態で拒否された場合は、その表示を終了します。
* もし `requestPresent()` がエンゲージメントジェスチャーの外で呼び出された場合、`VRDisplay` が既に表示されていない限り、そのプロミスは拒否されます。このエンゲージメントジェスチャーは、プレゼンテーションが終了するまで `requestPointerLock()` の呼び出しを許可することにも使えます。
例
-


```js
if (navigator.getVRDisplays) {
  console.log("WebVR 1.1 supported");
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then(function (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", function () {
        if (btn.textContent === "Start VR display") {
          vrDisplay.requestPresent([{ source: canvas }]).then(function () {
            console.log("Presenting to WebVR display");

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

            var leftEye = vrDisplay.getEyeParameters("left");
            var 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 で見ることができます。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API
VRDisplay.cancelAnimationFrame()
================================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**`cancelAnimationFrame()`** は `VRDisplay` インターフェイスのメソッドで、 `Window.cancelAnimationFrame` の特別な実装であり、 `VRDisplay.requestAnimationFrame()` で登録したコールバックを登録解除します．

**メモ:** このプロパティは、古い WebVR API の一部でした。 WebXR Device APIに置き換えられました。

構文
--


```js
cancelAnimationFrame(handle);
```

### 引数

`handle`

登録解除するための `VRDisplay.requestAnimationFrame()` の呼び出しで返されたハンドルです。

### 返値

なし (`undefined`)。

例
-


```js
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
drawScene();

// WebVR: Check to see if WebVR is supported
if(navigator.getVRDisplays) {
  console.log('WebVR 1.1 supported');
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then(function(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', function() {
        if(btn.textContent === 'Start VR display') {
          vrDisplay.requestPresent([{ source: canvas }]).then(function() {
            console.log('Presenting to WebVR display');

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

            var leftEye = vrDisplay.getEyeParameters('left');
            var 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();
        }
      });
    }
  });
} else {
  info.textContent = 'WebVR API not supported by this browser.'
}

function drawVRScene() {
  // WebVR: Request the next frame of the animation
  vrSceneFrame = vrDisplay.requestAnimationFrame(drawVRScene);

  ...
}
```


**メモ:** 完全なコードは raw-webgl-example で見ることができます。

仕様書
---

このインターフェイスは、古い WebVR API の一部でしたが、 WebXR Device API に置き換えられました。標準化される予定はありません。

すべてのブラウザーが新しい WebXR API を実装するまで、すべてのブラウザーで動作する WebXR アプリケーションを開発するには、A-Frame や Babylon.js や Three.js などのフレームワークを利用したり、ポリフィルを利用したりすると良いでしょう [1]。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* WebVR API