OLD | NEW |
---|---|
(Empty) | |
1 | |
2 /* | |
3 * Copyright 2013 Google Inc. | |
4 * | |
5 * Use of this source code is governed by a BSD-style license that can be | |
6 * found in the LICENSE file. | |
7 */ | |
8 | |
9 #ifndef SkCanvasStack_DEFINED | |
10 #define SkCanvasStack_DEFINED | |
11 | |
12 #include "SkNWayCanvas.h" | |
13 #include "SkTArray.h" | |
14 | |
15 class SkCanvasStack : public SkNWayCanvas { | |
16 public: | |
17 SkCanvasStack(int width, int height); | |
18 virtual ~SkCanvasStack(); | |
19 | |
20 void pushCanvas(SkCanvas* canvas, const SkIPoint& origin); | |
21 virtual void removeAll() SK_OVERRIDE; | |
reed1
2013/09/04 15:00:00
Do we need to expose this guy for Clank, or can we
| |
22 | |
23 /* | |
24 * The following add/remove canvas methods are overrides from SkNWayCanvas | |
25 * that do not make sense in the context of our CanvasStack, but since we | |
26 * can share most of the other implementation of NWay we override those | |
27 * methods to be no-ops. | |
28 */ | |
29 virtual void addCanvas(SkCanvas*) SK_OVERRIDE {}; | |
reed1
2013/09/04 15:00:00
SkASSERT(!"don't call addCanvas on a CanvasStack")
| |
30 virtual void removeCanvas(SkCanvas*) SK_OVERRIDE {}; | |
31 | |
32 virtual void setMatrix(const SkMatrix& matrix) SK_OVERRIDE; | |
33 virtual bool clipRect(const SkRect&, SkRegion::Op, bool) SK_OVERRIDE; | |
34 virtual bool clipRRect(const SkRRect&, SkRegion::Op, bool) SK_OVERRIDE; | |
35 virtual bool clipPath(const SkPath&, SkRegion::Op, bool) SK_OVERRIDE; | |
36 virtual bool clipRegion(const SkRegion& deviceRgn, | |
37 SkRegion::Op) SK_OVERRIDE; | |
38 | |
39 private: | |
40 void clipToZOrderedBounds(); | |
41 | |
42 struct CanvasData { | |
43 SkIPoint origin; | |
44 SkRegion requiredClip; | |
45 }; | |
46 | |
47 SkTArray<CanvasData> fCanvasData; | |
48 | |
49 typedef SkNWayCanvas INHERITED; | |
50 }; | |
51 | |
52 #endif | |
OLD | NEW |