Home | History | Annotate | Download | only in test
      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_CLIENT_H_
      6 #define CC_TEST_FAKE_CONTENT_LAYER_CLIENT_H_
      7 
      8 #include <utility>
      9 #include <vector>
     10 
     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/rect.h"
     16 
     17 namespace cc {
     18 
     19 class FakeContentLayerClient : public ContentLayerClient {
     20  public:
     21   struct BitmapData {
     22     SkBitmap bitmap;
     23     gfx::Point point;
     24     SkPaint paint;
     25   };
     26 
     27   FakeContentLayerClient();
     28   virtual ~FakeContentLayerClient();
     29 
     30   virtual void PaintContents(SkCanvas* canvas,
     31                              gfx::Rect rect,
     32                              gfx::RectF* opaque_rect) OVERRIDE;
     33   virtual void DidChangeLayerCanUseLCDText() OVERRIDE {}
     34 
     35   void set_paint_all_opaque(bool opaque) { paint_all_opaque_ = opaque; }
     36 
     37   void add_draw_rect(const gfx::RectF& rect, const SkPaint& paint) {
     38     draw_rects_.push_back(std::make_pair(rect, paint));
     39   }
     40 
     41   void add_draw_bitmap(const SkBitmap& bitmap,
     42                        gfx::Point point,
     43                        const SkPaint& paint) {
     44     BitmapData data;
     45     data.bitmap = bitmap;
     46     data.point = point;
     47     data.paint = paint;
     48     draw_bitmaps_.push_back(data);
     49   }
     50 
     51  private:
     52   typedef std::vector<std::pair<gfx::RectF, SkPaint> > RectPaintVector;
     53   typedef std::vector<BitmapData> BitmapVector;
     54 
     55   bool paint_all_opaque_;
     56   RectPaintVector draw_rects_;
     57   BitmapVector draw_bitmaps_;
     58 };
     59 
     60 }  // namespace cc
     61 
     62 #endif  // CC_TEST_FAKE_CONTENT_LAYER_CLIENT_H_
     63