SkLiteRecorder.h revision c1f7774e8d327e3c98b4094c9c01d26e27013f71
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 SkLiteRecorder_DEFINED
9#define SkLiteRecorder_DEFINED
10
11#include "SkNoDrawCanvas.h"
12
13class SkLiteDL;
14
15class SkLiteRecorder final : public SkNoDrawCanvas {
16public:
17    SkLiteRecorder();
18    void reset(SkLiteDL*);
19
20    sk_sp<SkSurface> onNewSurface(const SkImageInfo&, const SkSurfaceProps&) override;
21
22#ifdef SK_SUPPORT_LEGACY_DRAWFILTER
23    SkDrawFilter* setDrawFilter(SkDrawFilter*) override;
24#endif
25
26    void willSave() override;
27    SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) override;
28    void willRestore() override;
29
30    void didConcat(const SkMatrix&) override;
31    void didSetMatrix(const SkMatrix&) override;
32    void didTranslate(SkScalar, SkScalar) override;
33
34    void onClipRect  (const   SkRect&, SkClipOp, ClipEdgeStyle) override;
35    void onClipRRect (const  SkRRect&, SkClipOp, ClipEdgeStyle) override;
36    void onClipPath  (const   SkPath&, SkClipOp, ClipEdgeStyle) override;
37    void onClipRegion(const SkRegion&, SkClipOp) override;
38
39    void onDrawPaint (const SkPaint&) override;
40    void onDrawPath  (const SkPath&, const SkPaint&) override;
41    void onDrawRect  (const SkRect&, const SkPaint&) override;
42    void onDrawRegion(const SkRegion&, const SkPaint&) override;
43    void onDrawOval  (const SkRect&, const SkPaint&) override;
44    void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override;
45    void onDrawRRect (const SkRRect&, const SkPaint&) override;
46    void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override;
47
48    void onDrawDrawable(SkDrawable*, const SkMatrix*) override;
49    void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override;
50    void onDrawAnnotation(const SkRect&, const char[], SkData*) override;
51
52    void onDrawText      (const void*, size_t, SkScalar x, SkScalar y, const SkPaint&) override;
53    void onDrawPosText   (const void*, size_t, const SkPoint[], const SkPaint&) override;
54    void onDrawPosTextH  (const void*, size_t, const SkScalar[], SkScalar, const SkPaint&) override;
55    void onDrawTextOnPath(const void*, size_t,
56                          const SkPath&, const SkMatrix*, const SkPaint&) override;
57    void onDrawTextRSXform(const void*, size_t,
58                           const SkRSXform[], const SkRect*, const SkPaint&) override;
59    void onDrawTextBlob(const SkTextBlob*, SkScalar, SkScalar, const SkPaint&) override;
60
61    void onDrawBitmap(const SkBitmap&, SkScalar, SkScalar, const SkPaint*) override;
62    void onDrawBitmapLattice(const SkBitmap&, const Lattice&, const SkRect&,
63                             const SkPaint*) override;
64    void onDrawBitmapNine(const SkBitmap&, const SkIRect&, const SkRect&, const SkPaint*) override;
65    void onDrawBitmapRect(const SkBitmap&, const SkRect*, const SkRect&, const SkPaint*,
66                          SrcRectConstraint) override;
67
68    void onDrawImage(const SkImage*, SkScalar, SkScalar, const SkPaint*) override;
69    void onDrawImageLattice(const SkImage*, const Lattice&, const SkRect&, const SkPaint*) override;
70    void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&, const SkPaint*) override;
71    void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
72                         SrcRectConstraint) override;
73
74    void onDrawPatch(const SkPoint[12], const SkColor[4],
75                     const SkPoint[4], SkBlendMode, const SkPaint&) override;
76    void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) override;
77    void onDrawVertices(VertexMode, int, const SkPoint[], const SkPoint[], const SkColor[],
78                        SkBlendMode, const uint16_t[], int, const SkPaint&) override;
79    void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
80                     int, SkBlendMode, const SkRect*, const SkPaint*) override;
81
82#ifdef SK_EXPERIMENTAL_SHADOWING
83    void didTranslateZ(SkScalar) override;
84    void onDrawShadowedPicture(const SkPicture*, const SkMatrix*,
85                               const SkPaint*, const SkShadowParams& params) override;
86#else
87    void didTranslateZ(SkScalar);
88    void onDrawShadowedPicture(const SkPicture*, const SkMatrix*,
89                               const SkPaint*, const SkShadowParams& params);
90#endif
91
92private:
93    typedef SkNoDrawCanvas INHERITED;
94
95    SkLiteDL* fDL;
96};
97
98#endif//SkLiteRecorder_DEFINED
99