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 LayerTreeHost::InitParams
* params
)
10 : LayerTreeHost(params
),
12 host_impl_(*params
->settings
, &proxy_
, &manager_
, nullptr),
13 needs_commit_(false) {
14 client_
->SetLayerTreeHost(this);
17 scoped_ptr
<FakeLayerTreeHost
> FakeLayerTreeHost::Create(
18 FakeLayerTreeHostClient
* client
) {
19 LayerTreeSettings settings
;
20 return Create(client
, settings
);
23 scoped_ptr
<FakeLayerTreeHost
> FakeLayerTreeHost::Create(
24 FakeLayerTreeHostClient
* client
,
25 const LayerTreeSettings
& settings
) {
26 LayerTreeHost::InitParams params
;
27 params
.client
= client
;
28 params
.settings
= &settings
;
29 return make_scoped_ptr(new FakeLayerTreeHost(client
, ¶ms
));
32 FakeLayerTreeHost::~FakeLayerTreeHost() {
33 client_
->SetLayerTreeHost(NULL
);
36 void FakeLayerTreeHost::SetNeedsCommit() { needs_commit_
= true; }
38 LayerImpl
* FakeLayerTreeHost::CommitAndCreateLayerImplTree() {
39 scoped_ptr
<LayerImpl
> old_root_layer_impl
= active_tree()->DetachLayerTree();
41 scoped_ptr
<LayerImpl
> layer_impl
= TreeSynchronizer::SynchronizeTrees(
42 root_layer(), old_root_layer_impl
.Pass(), active_tree());
43 active_tree()->SetPropertyTrees(*property_trees());
44 TreeSynchronizer::PushProperties(root_layer(), layer_impl
.get());
46 active_tree()->SetRootLayer(layer_impl
.Pass());
47 return active_tree()->root_layer();