fake_picture_pile_impl.h revision bb1529ce867d8845a77ec7cdf3e3003ef1771a40
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_PICTURE_PILE_IMPL_H_
6#define CC_TEST_FAKE_PICTURE_PILE_IMPL_H_
7
8#include "base/memory/ref_counted.h"
9#include "cc/resources/picture_pile_impl.h"
10#include "cc/test/fake_content_layer_client.h"
11
12namespace cc {
13
14class FakePicturePileImpl : public PicturePileImpl {
15 public:
16  static scoped_refptr<FakePicturePileImpl> CreateFilledPile(
17      gfx::Size tile_size,
18      gfx::Size layer_bounds);
19
20  static scoped_refptr<FakePicturePileImpl> CreateEmptyPile(
21      gfx::Size tile_size,
22      gfx::Size layer_bounds);
23
24  static scoped_refptr<FakePicturePileImpl> CreatePile();
25
26  TilingData& tiling() { return tiling_; }
27
28  void AddRecordingAt(int x, int y);
29  void RemoveRecordingAt(int x, int y);
30  void RerecordPile();
31
32  void AddPictureToRecording(
33      int x,
34      int y,
35      scoped_refptr<Picture> picture);
36
37  void add_draw_rect(const gfx::RectF& rect) {
38    client_.add_draw_rect(rect, default_paint_);
39  }
40
41  void add_draw_bitmap(const SkBitmap& bitmap, gfx::Point point) {
42    client_.add_draw_bitmap(bitmap, point);
43  }
44
45  void add_draw_rect_with_paint(const gfx::RectF& rect, const SkPaint& paint) {
46    client_.add_draw_rect(rect, paint);
47  }
48
49  void set_default_paint(const SkPaint& paint) {
50    default_paint_ = paint;
51  }
52
53  void set_background_color(SkColor color) {
54    background_color_ = color;
55  }
56
57  void set_contents_opaque(bool contents_opaque) {
58    contents_opaque_ = contents_opaque;
59  }
60
61 protected:
62  FakePicturePileImpl();
63  virtual ~FakePicturePileImpl();
64
65  FakeContentLayerClient client_;
66  SkPaint default_paint_;
67};
68
69}  // namespace cc
70
71#endif  // CC_TEST_FAKE_PICTURE_PILE_IMPL_H_
72