blob: 3d786c532c25f9bbfc115876974a36a51801678e [file] [log] [blame]
robertphillips@google.com81e87392014-01-07 16:08:04 +00001/*
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.
robertphillips@google.com0f03f432014-03-16 21:59:11 +000017class SK_API SkNoSaveLayerCanvas : public SkCanvas {
robertphillips@google.com81e87392014-01-07 16:08:04 +000018public:
reed4a8126e2014-09-22 07:29:03 -070019 SkNoSaveLayerCanvas(SkBaseDevice* device)
robertphillipsfcf78292015-06-19 11:49:52 -070020 : INHERITED(device, kConservativeRasterClip_InitFlag)
reedd9544982014-09-09 18:46:22 -070021 {}
robertphillips@google.com81e87392014-01-07 16:08:04 +000022
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000023protected:
reed4960eee2015-12-18 07:09:18 -080024 SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec& rec) override {
25 (void)this->INHERITED::getSaveLayerStrategy(rec);
commit-bot@chromium.orge54a23f2014-03-12 20:21:48 +000026 return kNoLayer_SaveLayerStrategy;
robertphillips@google.com81e87392014-01-07 16:08:04 +000027 }
28
robertphillips@google.com81e87392014-01-07 16:08:04 +000029private:
30 typedef SkCanvas INHERITED;
31};
32
33#endif // SkNoSaveLayerCanvas_DEFINED