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 17namespace cc { 18 19class 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 virtual ~FakeLayerTreeHost(); 27 28 virtual void SetNeedsCommit() OVERRIDE; 29 virtual 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 µ_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_ 68