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.
17class SK_API SkNoSaveLayerCanvas : public SkCanvas {
18public:
19    SkNoSaveLayerCanvas(SkBaseDevice* device)
20        : INHERITED(device, NULL, kConservativeRasterClip_InitFlag)
21    {}
22
23protected:
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
30private:
31    typedef SkCanvas INHERITED;
32};
33
34#endif // SkNoSaveLayerCanvas_DEFINED
35