| Index: device/vr/vr_device.h
|
| diff --git a/device/vr/vr_device.h b/device/vr/vr_device.h
|
| index 4121cfcba2268b2b4bd6b17d4bafc9d6e6a1dc0b..2a52acf184d067be0ac35379ef96ab05b45ab7e5 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 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 CheckAccessAllowed(VRServiceImpl* service);
|
| + virtual bool IsPresentingService(VRServiceImpl* service);
|
| +
|
| + virtual void OnDisplayChanged();
|
| +
|
| + virtual void OnExitPresent(VRServiceImpl* service);
|
| +
|
| + protected:
|
| + // Each Service has one VRDisplayImpl with one VRDevice.
|
| + // TODO: Since the VRDisplayImpl knows it's VRServiceImpl we should only need
|
| + // to store the VRDisplayImpl.
|
| + using DisplayMap = std::map<VRServiceImpl*, VRDisplayImpl*>;
|
| + DisplayMap displays_;
|
| +
|
| + // TODO: Should track presenting VRDisplayImpl instead.
|
| + VRServiceImpl* presenting_service_;
|
|
|
| private:
|
| VRDeviceProvider* provider_;
|
|
|