arcore_device_provider.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2018 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #ifndef COMPONENTS_WEBXR_ANDROID_ARCORE_DEVICE_PROVIDER_H_
  5. #define COMPONENTS_WEBXR_ANDROID_ARCORE_DEVICE_PROVIDER_H_
  6. #include <memory>
  7. #include "components/webxr/android/ar_compositor_delegate_provider.h"
  8. #include "device/vr/public/cpp/vr_device_provider.h"
  9. #include "mojo/public/cpp/bindings/pending_remote.h"
  10. namespace device {
  11. class ArCoreDevice;
  12. }
  13. namespace webxr {
  14. class ArCoreDeviceProvider : public device::VRDeviceProvider {
  15. public:
  16. explicit ArCoreDeviceProvider(
  17. webxr::ArCompositorDelegateProvider compositor_delegate_provider);
  18. ArCoreDeviceProvider(const ArCoreDeviceProvider&) = delete;
  19. ArCoreDeviceProvider& operator=(const ArCoreDeviceProvider&) = delete;
  20. ~ArCoreDeviceProvider() override;
  21. void Initialize(device::VRDeviceProviderClient* client) override;
  22. bool Initialized() override;
  23. private:
  24. webxr::ArCompositorDelegateProvider compositor_delegate_provider_;
  25. std::unique_ptr<device::ArCoreDevice> arcore_device_;
  26. bool initialized_ = false;
  27. };
  28. } // namespace webxr
  29. #endif // COMPONENTS_WEBXR_ANDROID_ARCORE_DEVICE_PROVIDER_H_