blob: ad0e3dd54114683675c38b66f7075d0816e11d0b [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/viz/host/compositing_mode_reporter_impl.h"
namespace viz {
CompositingModeReporterImpl::CompositingModeReporterImpl() = default;
CompositingModeReporterImpl::~CompositingModeReporterImpl() = default;
void CompositingModeReporterImpl::BindReceiver(
mojo::PendingReceiver<mojom::CompositingModeReporter> receiver) {
receivers_.Add(this, std::move(receiver));
}
void CompositingModeReporterImpl::SetUsingSoftwareCompositing() {
gpu_ = false;
for (auto& it : watchers_)
it->CompositingModeFallbackToSoftware();
}
void CompositingModeReporterImpl::AddCompositingModeWatcher(
mojo::PendingRemote<mojom::CompositingModeWatcher> watcher) {
mojo::Remote<mojom::CompositingModeWatcher> watcher_remote(
std::move(watcher));
if (!gpu_)
watcher_remote->CompositingModeFallbackToSoftware();
watchers_.Add(std::move(watcher_remote));
}
} // namespace viz