17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef CC_TEST_FAKE_LAYER_TREE_HOST_H_ 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define CC_TEST_FAKE_LAYER_TREE_HOST_H_ 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "cc/debug/micro_benchmark_controller.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_impl_proxy.h" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_layer_tree_host_client.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_layer_tree_host_impl.h" 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/layer_tree_host.h" 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/layer_tree_impl.h" 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/tree_synchronizer.h" 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace cc { 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class FakeLayerTreeHost : public LayerTreeHost { 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public: 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) static scoped_ptr<FakeLayerTreeHost> Create(); 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static scoped_ptr<FakeLayerTreeHost> Create( 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) const LayerTreeSettings& settings); 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual ~FakeLayerTreeHost() {} 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) virtual void SetNeedsCommit() OVERRIDE; 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void SetNeedsFullTreeSync() OVERRIDE {} 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch using LayerTreeHost::SetRootLayer; 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) using LayerTreeHost::root_layer; 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) LayerImpl* CommitAndCreateLayerImplTree(); 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) FakeLayerTreeHostImpl* host_impl() { return &host_impl_; } 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) LayerTreeImpl* active_tree() { return host_impl_.active_tree(); } 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) using LayerTreeHost::ScheduleMicroBenchmark; 394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) using LayerTreeHost::SetOutputSurfaceLostForTesting; 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) using LayerTreeHost::InitializeSingleThreaded; 414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) using LayerTreeHost::InitializeForTesting; 424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void UpdateLayers(ResourceUpdateQueue* queue) { 434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) LayerTreeHost::UpdateLayers(queue); 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) MicroBenchmarkController* GetMicroBenchmarkController() { 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return µ_benchmark_controller_; 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool needs_commit() { return needs_commit_; } 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private: 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeLayerTreeHost(LayerTreeHostClient* client, 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const LayerTreeSettings& settings) 551e9bf3e0803691d0a228da41fc608347b6db4340Torne (Richard Coles) : LayerTreeHost(client, NULL, settings), 564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) host_impl_(settings, &proxy_), 574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) needs_commit_(false) {} 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeImplProxy proxy_; 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeLayerTreeHostImpl host_impl_; 614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) bool needs_commit_; 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}; 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace cc 657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif // CC_TEST_FAKE_LAYER_TREE_HOST_H_ 67