// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// http://mozvr.github.io/webvr-spec/webvr.html#vrdisplaycapabilities
[
    RuntimeEnabled=WebVR
] interface VRDisplayCapabilities {
  // Whether or not the VR display is capable of reporting user orientation.
  readonly attribute boolean hasOrientation;

  // Whether or not the VR display is capable of reporting user position.
  // If false position may still be reported using simulated values like
  // neck modeling.
  readonly attribute boolean hasPosition;

  // Whether or not the VRDisplay is separate from the device’s primary display.
  // If presenting VR content will obscure other content on the device, this
  // should be false. When false VR content should not be mirrored.
  readonly attribute boolean hasExternalDisplay;

  // Whether or not the VRDisplay is capable of presenting content to an HMD or
  // similar device. Can be used to indicate “magic window” devices that are
  // capable of 6DoF tracking but for which requestPresent is not meaningful. If
  // false then calls to requestPresent should always fail, and getEyeParameters
  // should return null.
  readonly attribute boolean canPresent;

  // The maximum length of the array that VRDisplay.requestPresent will accept.
  readonly attribute unsigned long maxLayers;
};