Chromium Code Reviews| Index: device/vr/vr_device.h |
| diff --git a/device/vr/vr_device.h b/device/vr/vr_device.h |
| index 4121cfcba2268b2b4bd6b17d4bafc9d6e6a1dc0b..5429d9cdad24d8d74a4d96dd94f608218ea7a555 100644 |
| --- a/device/vr/vr_device.h |
| +++ b/device/vr/vr_device.h |
| @@ -20,6 +20,8 @@ class BaseWindow; |
| namespace device { |
| class VRDeviceProvider; |
| +class VRDisplayImpl; |
| +class VRServiceImpl; |
| const unsigned int VR_DEVICE_LAST_ID = 0xFFFFFFFF; |
| @@ -31,15 +33,37 @@ class DEVICE_VR_EXPORT VRDevice { |
| VRDeviceProvider* provider() const { return provider_; } |
| unsigned int id() const { return id_; } |
| - virtual VRDisplayPtr GetVRDevice() = 0; |
| - virtual VRPosePtr GetPose() = 0; |
| - virtual void ResetPose() = 0; |
| - |
| - virtual bool RequestPresent(bool secure_origin); |
| - virtual void ExitPresent(){}; |
| - virtual void SubmitFrame(VRPosePtr pose){}; |
| - virtual void UpdateLayerBounds(VRLayerBoundsPtr leftBounds, |
| - VRLayerBoundsPtr rightBounds){}; |
| + virtual mojom::VRDisplayInfoPtr GetVRDevice() = 0; |
| + virtual mojom::VRPosePtr GetPose(VRServiceImpl* service) = 0; |
| + virtual void ResetPose(VRServiceImpl* service) = 0; |
| + |
| + virtual bool RequestPresent(VRServiceImpl* service, bool secure_origin) = 0; |
| + virtual void ExitPresent(VRServiceImpl* service) = 0; |
| + virtual void SubmitFrame(VRServiceImpl* service, mojom::VRPosePtr pose) = 0; |
| + virtual void UpdateLayerBounds(VRServiceImpl* service, |
| + mojom::VRLayerBoundsPtr leftBounds, |
| + mojom::VRLayerBoundsPtr rightBounds) = 0; |
| + |
| + virtual void AddService(VRServiceImpl* service); |
| + virtual void RemoveService(VRServiceImpl* service); |
| + |
| + // TODO (Shaobo): Checks should be done against VRDisplayImpl. |
|
dcheng
2016/11/08 08:55:16
The convention for TODOs here and elsewhere should
|
| + virtual bool IsAccessAllowed(VRServiceImpl* service); |
| + virtual bool IsPresentingService(VRServiceImpl* service); |
| + |
| + virtual void OnDisplayChanged(); |
| + virtual void OnExitPresent(VRServiceImpl* service); |
| + |
| + protected: |
| + // Each Service have one VRDisplay with one VRDevice. |
| + // TODO (Shaobo): Since the VRDisplayImpl knows its VRServiceImpl we should |
| + // only need |
|
dcheng
2016/11/08 08:55:16
Nit: fix wrapping
|
| + // to store the VRDisplayImpl. |
| + using DisplayClientMap = std::map<VRServiceImpl*, VRDisplayImpl*>; |
| + DisplayClientMap displays_; |
| + |
| + // TODO (Shaobo): Should track presenting VRDisplayImpl instead. |
| + VRServiceImpl* presenting_service_; |
| private: |
| VRDeviceProvider* provider_; |