fake_layer_tree_host.h revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
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 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_impl_proxy.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_layer_tree_host_client.h" 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/test/fake_layer_tree_host_impl.h" 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/layer_tree_host.h" 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/layer_tree_impl.h" 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "cc/trees/tree_synchronizer.h" 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace cc { 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass FakeLayerTreeHost : protected LayerTreeHost { 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public: 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static scoped_ptr<FakeLayerTreeHost> Create() { 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static LayerTreeSettings settings; 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return make_scoped_ptr(new FakeLayerTreeHost(&client, settings)); 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static scoped_ptr<FakeLayerTreeHost> Create( 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const LayerTreeSettings& settings) { 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch static FakeLayerTreeHostClient client(FakeLayerTreeHostClient::DIRECT_3D); 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return make_scoped_ptr(new FakeLayerTreeHost(&client, settings)); 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual ~FakeLayerTreeHost() {} 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void SetNeedsCommit() OVERRIDE {} 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch virtual void SetNeedsFullTreeSync() OVERRIDE {} 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch using LayerTreeHost::SetRootLayer; 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch LayerImpl* CommitAndCreateLayerImplTree() { 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<LayerImpl> old_root_layer_impl = 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch active_tree()->DetachLayerTree(); 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch scoped_ptr<LayerImpl> layer_impl = 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TreeSynchronizer::SynchronizeTrees( 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch root_layer(), 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch old_root_layer_impl.Pass(), 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch active_tree()); 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch TreeSynchronizer::PushProperties(root_layer(), layer_impl.get()); 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch active_tree()->SetRootLayer(layer_impl.Pass()); 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return active_tree()->root_layer(); 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch } 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch LayerTreeImpl* active_tree() { return host_impl_.active_tree(); } 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private: 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeLayerTreeHost(LayerTreeHostClient* client, 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const LayerTreeSettings& settings) 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch : LayerTreeHost(client, settings), 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch host_impl_(settings, &proxy_) {} 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeImplProxy proxy_; 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch FakeLayerTreeHostImpl host_impl_; 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}; 647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace cc 667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif // CC_TEST_FAKE_LAYER_TREE_HOST_H_ 68