12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright 2012 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CC_TEST_FAKE_LAYER_TREE_HOST_IMPL_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CC_TEST_FAKE_LAYER_TREE_HOST_IMPL_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/test/fake_layer_tree_host_impl_client.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/test/fake_rendering_stats_instrumentation.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/trees/layer_tree_host_impl.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/trees/single_thread_proxy.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace cc {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class FakeLayerTreeHostImpl : public LayerTreeHostImpl {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  FakeLayerTreeHostImpl(Proxy* proxy, SharedBitmapManager* manager);
1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)  FakeLayerTreeHostImpl(const LayerTreeSettings& settings,
1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)                        Proxy* proxy,
2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)                        SharedBitmapManager* manager);
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual ~FakeLayerTreeHostImpl();
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  void ForcePrepareToDraw() {
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    LayerTreeHostImpl::FrameData frame_data;
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    PrepareToDraw(&frame_data);
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    DidDrawAllLayers(frame_data);
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
29868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)  virtual void CreatePendingTree() OVERRIDE;
30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  virtual BeginFrameArgs CurrentBeginFrameArgs() const OVERRIDE;
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  void SetCurrentBeginFrameArgs(const BeginFrameArgs& args);
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  void UpdateNumChildrenAndDrawPropertiesForActiveTree();
346e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  static void UpdateNumChildrenAndDrawProperties(LayerTreeImpl* layerTree);
356e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  static int RecursiveUpdateNumChildren(LayerImpl* layer);
3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)
37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  using LayerTreeHostImpl::ActivateSyncTree;
3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)  using LayerTreeHostImpl::manage_tiles_needed;
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private:
4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)  BeginFrameArgs current_begin_frame_args_;
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  FakeLayerTreeHostImplClient client_;
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  FakeRenderingStatsInstrumentation stats_instrumentation_;
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace cc
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // CC_TEST_FAKE_LAYER_TREE_HOST_IMPL_H_
49