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..7d82827039e96cf1897171f7845683b0eda623a5 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,36 @@ 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 mojom::VRDisplayInfoPtr GetVRDevice() = 0; |
| + virtual mojom::VRPosePtr GetPose(VRServiceImpl* service) = 0; |
| + virtual void ResetPose(VRServiceImpl* service) = 0; |
| - virtual bool RequestPresent(bool secure_origin); |
| - virtual void ExitPresent(){}; |
| - virtual void SubmitFrame(VRPosePtr pose){}; |
| - virtual void UpdateLayerBounds(VRLayerBoundsPtr leftBounds, |
| - VRLayerBoundsPtr rightBounds){}; |
| + 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: Checks should be done against VRDisplayImpl. |
| + 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 : Since the VRDisplayImpl knows it's VRServiceImpl we should only need |
|
dcheng
2016/11/04 05:12:21
TODO should have a username or bug number associat
|
| + // tp store the VRDisplayImpl. |
| + using DisplayClientMap = std::map<VRServiceImpl*, VRDisplayImpl*>; |
| + DisplayClientMap displays_; |
| + |
| + // TODO: Should track presenting VRDisplayImpl instead. |
| + VRServiceImpl* presenting_service_; |
| private: |
| VRDeviceProvider* provider_; |