1 // Copyright 2013 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.
5 #include "cc/test/fake_layer_tree_host.h"
8 FakeLayerTreeHost::FakeLayerTreeHost(FakeLayerTreeHostClient* client,
9 const LayerTreeSettings& settings)
10 : LayerTreeHost(client, NULL, NULL, settings),
12 host_impl_(settings, &proxy_, &manager_),
13 needs_commit_(false) {
14 client_->SetLayerTreeHost(this);
17 scoped_ptr<FakeLayerTreeHost> FakeLayerTreeHost::Create(
18 FakeLayerTreeHostClient* client) {
19 LayerTreeSettings settings;
20 return make_scoped_ptr(new FakeLayerTreeHost(client, settings));
23 scoped_ptr<FakeLayerTreeHost> FakeLayerTreeHost::Create(
24 FakeLayerTreeHostClient* client,
25 const LayerTreeSettings& settings) {
26 return make_scoped_ptr(new FakeLayerTreeHost(client, settings));
29 FakeLayerTreeHost::~FakeLayerTreeHost() {
30 client_->SetLayerTreeHost(NULL);
33 void FakeLayerTreeHost::SetNeedsCommit() { needs_commit_ = true; }
35 LayerImpl* FakeLayerTreeHost::CommitAndCreateLayerImplTree() {
36 scoped_ptr<LayerImpl> old_root_layer_impl = active_tree()->DetachLayerTree();
38 scoped_ptr<LayerImpl> layer_impl = TreeSynchronizer::SynchronizeTrees(
39 root_layer(), old_root_layer_impl.Pass(), active_tree());
40 TreeSynchronizer::PushProperties(root_layer(), layer_impl.get());
42 active_tree()->SetRootLayer(layer_impl.Pass());
43 return active_tree()->root_layer();