Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / include / utils / SkNoSaveLayerCanvas.h
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:
19     SkNoSaveLayerCanvas(SkBaseDevice* device)
20         : INHERITED(device, NULL, kConservativeRasterClip_InitFlag)
21     {}
22
23 protected:
24     virtual SaveLayerStrategy willSaveLayer(const SkRect* bounds, const SkPaint* paint,
25                                             SaveFlags flags) SK_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