- add sources.
[platform/framework/web/crosswalk.git] / src / cc / test / fake_layer_tree_host.h
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.
4
5 #ifndef CC_TEST_FAKE_LAYER_TREE_HOST_H_
6 #define CC_TEST_FAKE_LAYER_TREE_HOST_H_
7
8 #include "cc/test/fake_impl_proxy.h"
9 #include "cc/test/fake_layer_tree_host_client.h"
10 #include "cc/test/fake_layer_tree_host_impl.h"
11 #include "cc/trees/layer_tree_host.h"
12 #include "cc/trees/layer_tree_impl.h"
13 #include "cc/trees/tree_synchronizer.h"
14
15 namespace cc {
16
17 class FakeLayerTreeHost : protected LayerTreeHost {
18  public:
19   static scoped_ptr<FakeLayerTreeHost> Create();
20
21   static scoped_ptr<FakeLayerTreeHost> Create(
22       const LayerTreeSettings& settings);
23
24   virtual ~FakeLayerTreeHost() {}
25
26   virtual void SetNeedsCommit() OVERRIDE;
27   virtual void SetNeedsFullTreeSync() OVERRIDE {}
28
29   using LayerTreeHost::SetRootLayer;
30   using LayerTreeHost::root_layer;
31
32   LayerImpl* CommitAndCreateLayerImplTree();
33
34   FakeLayerTreeHostImpl* host_impl() { return &host_impl_; }
35   LayerTreeImpl* active_tree() { return host_impl_.active_tree(); }
36
37   using LayerTreeHost::ScheduleMicroBenchmark;
38   using LayerTreeHost::SetOutputSurfaceLostForTesting;
39   using LayerTreeHost::InitializeForTesting;
40   void UpdateLayers(ResourceUpdateQueue* queue) {
41     LayerTreeHost::UpdateLayers(queue);
42   }
43
44   bool needs_commit() { return needs_commit_; }
45
46  private:
47   FakeLayerTreeHost(LayerTreeHostClient* client,
48                     const LayerTreeSettings& settings)
49       : LayerTreeHost(client, NULL, settings),
50         host_impl_(settings, &proxy_),
51         needs_commit_(false) {}
52
53   FakeImplProxy proxy_;
54   FakeLayerTreeHostImpl host_impl_;
55   bool needs_commit_;
56 };
57
58 }  // namespace cc
59
60 #endif  // CC_TEST_FAKE_LAYER_TREE_HOST_H_