compositing_mode_reporter_impl.cc 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. // Copyright 2017 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. #include "components/viz/host/compositing_mode_reporter_impl.h"
  5. namespace viz {
  6. CompositingModeReporterImpl::CompositingModeReporterImpl() = default;
  7. CompositingModeReporterImpl::~CompositingModeReporterImpl() = default;
  8. void CompositingModeReporterImpl::BindReceiver(
  9. mojo::PendingReceiver<mojom::CompositingModeReporter> receiver) {
  10. receivers_.Add(this, std::move(receiver));
  11. }
  12. void CompositingModeReporterImpl::SetUsingSoftwareCompositing() {
  13. gpu_ = false;
  14. for (auto& it : watchers_)
  15. it->CompositingModeFallbackToSoftware();
  16. }
  17. void CompositingModeReporterImpl::AddCompositingModeWatcher(
  18. mojo::PendingRemote<mojom::CompositingModeWatcher> watcher) {
  19. mojo::Remote<mojom::CompositingModeWatcher> watcher_remote(
  20. std::move(watcher));
  21. if (!gpu_)
  22. watcher_remote->CompositingModeFallbackToSoftware();
  23. watchers_.Add(std::move(watcher_remote));
  24. }
  25. } // namespace viz