1// Copyright 2012 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_CONTENT_LAYER_H_
6#define CC_TEST_FAKE_CONTENT_LAYER_H_
7
8#include "base/memory/scoped_ptr.h"
9#include "cc/layers/content_layer.h"
10
11namespace cc {
12
13class FakeContentLayer : public ContentLayer {
14 public:
15  static scoped_refptr<FakeContentLayer> Create(ContentLayerClient* client) {
16    return make_scoped_refptr(new FakeContentLayer(client));
17  }
18
19  virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
20      OVERRIDE;
21
22  size_t update_count() const { return update_count_; }
23  void reset_update_count() { update_count_ = 0; }
24
25  size_t push_properties_count() const { return push_properties_count_; }
26  void reset_push_properties_count() { push_properties_count_ = 0; }
27
28  virtual bool Update(ResourceUpdateQueue* queue,
29                      const OcclusionTracker<Layer>* occlusion) OVERRIDE;
30
31  gfx::Rect LastPaintRect() const;
32
33  void set_always_update_resources(bool always_update_resources) {
34    always_update_resources_ = always_update_resources;
35  }
36
37  virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
38
39  virtual void OnOutputSurfaceCreated() OVERRIDE;
40  size_t output_surface_created_count() const {
41    return output_surface_created_count_;
42  }
43
44  bool HaveBackingAt(int i, int j);
45
46 private:
47  explicit FakeContentLayer(ContentLayerClient* client);
48  virtual ~FakeContentLayer();
49
50  size_t update_count_;
51  size_t push_properties_count_;
52  size_t output_surface_created_count_;
53  bool always_update_resources_;
54};
55
56}  // namespace cc
57
58#endif  // CC_TEST_FAKE_CONTENT_LAYER_H_
59