Experimental
これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
VRDisplay
インターフェイスの requestPresent()
メソッドは,VRDisplay
へのシーン表示を開始します.
シンタックス
vrDisplayInstance.requestPresent(layers).then(function() {
// Do something after the presentation has begun
});
パラメータ
- layers
- 表示したいシーンを表す
VRLayer
オブジェクトの配列.なお現時点では,指定できるのは最小0要素,最大1要素です.
戻り値
表示が開始されたかを解決するpromise.
注記: VRDisplayCapabilities.canPresent
が false,あるいは
VRLayer
配列数が VRDisplayCapabilities.maxLayers
レイヤより多い場合, promiseはリジェクトされます.
注記: requestPresent()
を呼出した時にVRDisplay
が表示中の場合,VRDisplay
は表示する VRLayer
配列を更新します.VRDisplayが表示中で
requestPresent()
がリジェクトされたら,VRDisplay
は表示を終了します.
例
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(); } }); } }); }
Note: You can see this complete code at raw-webgl-example.
仕様
Specification | Status | Comment |
---|---|---|
Unknown requestPresent() の定義 |
不明 | Initial definition |
ブラウザの互換性
現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。
この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
手助けしていただける場合は、こちらから!
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | (有) | (有) | 未対応 | 未対応 | 未対応 |
Feature | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|
Basic support | 未対応 | (有) | 未対応 | 未対応 | 未対応 | 未対応 |
参照
- WebVR API homepage.
- MozVr.com — Mozilla VRチームのデモ,ダウンロード,その他のリソース.