• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2014 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkNoSaveLayerCanvas_DEFINED
9 #define SkNoSaveLayerCanvas_DEFINED
10 
11 #include "SkCanvas.h"
12 #include "SkRRect.h"
13 
14 // The NoSaveLayerCanvas is used to play back SkPictures when the saveLayer
15 // functionality isn't required (e.g., during analysis of the draw calls).
16 // It also simplifies the clipping calls to only use rectangles.
17 class SK_API SkNoSaveLayerCanvas : public SkCanvas {
18 public:
SkNoSaveLayerCanvas(SkBaseDevice * device)19     SkNoSaveLayerCanvas(SkBaseDevice* device)
20         : INHERITED(device, NULL, kConservativeRasterClip_InitFlag)
21     {}
22 
23 protected:
willSaveLayer(const SkRect * bounds,const SkPaint * paint,SaveFlags flags)24     virtual SaveLayerStrategy willSaveLayer(const SkRect* bounds, const SkPaint* paint,
25                                             SaveFlags flags) override {
26         this->INHERITED::willSaveLayer(bounds, paint, flags);
27         return kNoLayer_SaveLayerStrategy;
28     }
29 
30 private:
31     typedef SkCanvas INHERITED;
32 };
33 
34 #endif // SkNoSaveLayerCanvas_DEFINED
35