Upstream version 11.40.277.0
[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/debug/micro_benchmark_controller.h"
9 #include "cc/test/fake_impl_proxy.h"
10 #include "cc/test/fake_layer_tree_host_client.h"
11 #include "cc/test/fake_layer_tree_host_impl.h"
12 #include "cc/test/test_shared_bitmap_manager.h"
13 #include "cc/trees/layer_tree_host.h"
14 #include "cc/trees/layer_tree_impl.h"
15 #include "cc/trees/tree_synchronizer.h"
16
17 namespace cc {
18
19 class FakeLayerTreeHost : public LayerTreeHost {
20  public:
21   static scoped_ptr<FakeLayerTreeHost> Create(FakeLayerTreeHostClient* client);
22   static scoped_ptr<FakeLayerTreeHost> Create(
23       FakeLayerTreeHostClient* client,
24       const LayerTreeSettings& settings);
25
26   ~FakeLayerTreeHost() override;
27
28   void SetNeedsCommit() override;
29   void SetNeedsFullTreeSync() override {}
30
31   using LayerTreeHost::SetRootLayer;
32   using LayerTreeHost::root_layer;
33
34   LayerImpl* CommitAndCreateLayerImplTree();
35
36   FakeLayerTreeHostImpl* host_impl() { return &host_impl_; }
37   LayerTreeImpl* active_tree() { return host_impl_.active_tree(); }
38
39   using LayerTreeHost::ScheduleMicroBenchmark;
40   using LayerTreeHost::SendMessageToMicroBenchmark;
41   using LayerTreeHost::SetOutputSurfaceLostForTesting;
42   using LayerTreeHost::InitializeSingleThreaded;
43   using LayerTreeHost::InitializeForTesting;
44   void UpdateLayers(ResourceUpdateQueue* queue) {
45     LayerTreeHost::UpdateLayers(queue);
46   }
47
48   MicroBenchmarkController* GetMicroBenchmarkController() {
49     return &micro_benchmark_controller_;
50   }
51
52   bool needs_commit() { return needs_commit_; }
53
54  private:
55   FakeLayerTreeHost(FakeLayerTreeHostClient* client,
56                     const LayerTreeSettings& settings);
57
58   FakeImplProxy proxy_;
59   FakeLayerTreeHostClient* client_;
60   TestSharedBitmapManager manager_;
61   FakeLayerTreeHostImpl host_impl_;
62   bool needs_commit_;
63 };
64
65 }  // namespace cc
66
67 #endif  // CC_TEST_FAKE_LAYER_TREE_HOST_H_