Implement self-contained gpu data collection on Android
[chromium-blink-merge.git] / cc / test / fake_content_layer_client.h
bloba4ecc590ea380b81600df28abdb8bbe2c8119b43
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.
5 #ifndef CC_TEST_FAKE_CONTENT_LAYER_CLIENT_H_
6 #define CC_TEST_FAKE_CONTENT_LAYER_CLIENT_H_
8 #include <utility>
9 #include <vector>
11 #include "base/compiler_specific.h"
12 #include "cc/layers/content_layer_client.h"
13 #include "third_party/skia/include/core/SkBitmap.h"
14 #include "third_party/skia/include/core/SkPaint.h"
15 #include "ui/gfx/geometry/rect.h"
16 #include "ui/gfx/transform.h"
18 namespace cc {
20 class FakeContentLayerClient : public ContentLayerClient {
21 public:
22 struct BitmapData {
23 BitmapData(const SkBitmap& bitmap,
24 const gfx::Point& point,
25 const SkPaint& paint);
26 BitmapData(const SkBitmap& bitmap,
27 const gfx::Transform& transform,
28 const SkPaint& paint);
29 ~BitmapData();
31 SkBitmap bitmap;
32 gfx::Point point;
33 gfx::Transform transform;
34 SkPaint paint;
37 FakeContentLayerClient();
38 ~FakeContentLayerClient() override;
40 void PaintContents(SkCanvas* canvas,
41 const gfx::Rect& rect,
42 PaintingControlSetting painting_control) override;
43 scoped_refptr<DisplayItemList> PaintContentsToDisplayList(
44 const gfx::Rect& clip,
45 PaintingControlSetting painting_control) override;
46 bool FillsBoundsCompletely() const override;
48 void set_fill_with_nonsolid_color(bool nonsolid) {
49 fill_with_nonsolid_color_ = nonsolid;
52 void add_draw_rect(const gfx::RectF& rect, const SkPaint& paint) {
53 draw_rects_.push_back(std::make_pair(rect, paint));
56 void add_draw_bitmap(const SkBitmap& bitmap,
57 const gfx::Point& point,
58 const SkPaint& paint) {
59 BitmapData data(bitmap, point, paint);
60 draw_bitmaps_.push_back(data);
63 void add_draw_bitmap_with_transform(const SkBitmap& bitmap,
64 const gfx::Transform& transform,
65 const SkPaint& paint) {
66 BitmapData data(bitmap, transform, paint);
67 draw_bitmaps_.push_back(data);
70 SkCanvas* last_canvas() const { return last_canvas_; }
72 PaintingControlSetting last_painting_control() const {
73 return last_painting_control_;
76 private:
77 typedef std::vector<std::pair<gfx::RectF, SkPaint>> RectPaintVector;
78 typedef std::vector<BitmapData> BitmapVector;
80 bool fill_with_nonsolid_color_;
81 RectPaintVector draw_rects_;
82 BitmapVector draw_bitmaps_;
83 SkCanvas* last_canvas_;
84 PaintingControlSetting last_painting_control_;
87 } // namespace cc
89 #endif // CC_TEST_FAKE_CONTENT_LAYER_CLIENT_H_