Line data Source code
1 : /*
2 : * Copyright 2016 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 SkNoDrawCanvas_DEFINED
9 : #define SkNoDrawCanvas_DEFINED
10 :
11 : #include "SkCanvas.h"
12 : #include "SkVertices.h"
13 :
14 : struct SkIRect;
15 :
16 : // SkNoDrawCanvas is a helper for SkCanvas subclasses which do not need to
17 : // actually rasterize (e.g., analysis of the draw calls).
18 : //
19 : // It provides the following simplifications:
20 : //
21 : // * not backed by any device/pixels
22 : // * conservative clipping (clipping calls only use rectangles)
23 : //
24 0 : class SK_API SkNoDrawCanvas : public SkCanvas {
25 : public:
26 : SkNoDrawCanvas(int width, int height);
27 :
28 : // TODO: investigate the users of this ctor.
29 : SkNoDrawCanvas(const SkIRect&);
30 :
31 : protected:
32 : SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec& rec) override;
33 :
34 : // No-op overrides for aborting rasterization earlier than SkNullBlitter.
35 0 : void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override {}
36 0 : void onDrawDrawable(SkDrawable*, const SkMatrix*) override {}
37 0 : void onDrawText(const void*, size_t, SkScalar, SkScalar, const SkPaint&) override {}
38 0 : void onDrawPosText(const void*, size_t, const SkPoint[], const SkPaint&) override {}
39 0 : void onDrawPosTextH(const void*, size_t, const SkScalar[], SkScalar, const SkPaint&) override {}
40 0 : void onDrawTextOnPath(const void*, size_t, const SkPath&, const SkMatrix*,
41 0 : const SkPaint&) override {}
42 0 : void onDrawTextRSXform(const void*, size_t, const SkRSXform[], const SkRect*,
43 0 : const SkPaint&) override {}
44 0 : void onDrawTextBlob(const SkTextBlob*, SkScalar, SkScalar, const SkPaint&) override {}
45 0 : void onDrawPatch(const SkPoint[12], const SkColor[4], const SkPoint[4], SkBlendMode,
46 0 : const SkPaint&) override {}
47 :
48 0 : void onDrawPaint(const SkPaint&) override {}
49 0 : void onDrawPoints(PointMode, size_t, const SkPoint[], const SkPaint&) override {}
50 0 : void onDrawRect(const SkRect&, const SkPaint&) override {}
51 0 : void onDrawRegion(const SkRegion&, const SkPaint&) override {}
52 0 : void onDrawOval(const SkRect&, const SkPaint&) override {}
53 0 : void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override {}
54 0 : void onDrawRRect(const SkRRect&, const SkPaint&) override {}
55 0 : void onDrawPath(const SkPath&, const SkPaint&) override {}
56 0 : void onDrawBitmap(const SkBitmap&, SkScalar, SkScalar, const SkPaint*) override {}
57 0 : void onDrawBitmapRect(const SkBitmap&, const SkRect*, const SkRect&, const SkPaint*,
58 0 : SrcRectConstraint) override {}
59 0 : void onDrawImage(const SkImage*, SkScalar, SkScalar, const SkPaint*) override {}
60 0 : void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
61 0 : SrcRectConstraint) override {}
62 0 : void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&, const SkPaint*) override {}
63 0 : void onDrawBitmapNine(const SkBitmap&, const SkIRect&, const SkRect&,
64 0 : const SkPaint*) override {}
65 0 : void onDrawImageLattice(const SkImage*, const Lattice&, const SkRect&,
66 0 : const SkPaint*) override {}
67 0 : void onDrawBitmapLattice(const SkBitmap&, const Lattice&, const SkRect&,
68 0 : const SkPaint*) override {}
69 0 : void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&) override {}
70 0 : void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
71 0 : int, SkBlendMode, const SkRect*, const SkPaint*) override {}
72 :
73 : private:
74 : typedef SkCanvas INHERITED;
75 : };
76 :
77 : #endif // SkNoDrawCanvas_DEFINED
|