19c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein/*
29c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein * Copyright 2016 Google Inc.
39c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein *
49c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein * Use of this source code is governed by a BSD-style license that can be
59c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein * found in the LICENSE file.
69c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein */
79c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
89c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#ifndef SkLiteRecorder_DEFINED
99c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#define SkLiteRecorder_DEFINED
109c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
11439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malita#include "SkNoDrawCanvas.h"
129c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
139c5052f16b249d2b7674ea86bd24ed0038ccc61fmtkleinclass SkLiteDL;
149c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
15439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malitaclass SkLiteRecorder final : public SkNoDrawCanvas {
169c5052f16b249d2b7674ea86bd24ed0038ccc61fmtkleinpublic:
179c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    SkLiteRecorder();
18d7875f57bd5f17ac27f1cb2ace25224299ff2389Derek Sollenberger    void reset(SkLiteDL*, const SkIRect& bounds);
199c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
209c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    sk_sp<SkSurface> onNewSurface(const SkImageInfo&, const SkSurfaceProps&) override;
219c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
226ae6969434302da86de1169545939461ac7147b9reed#ifdef SK_SUPPORT_LEGACY_DRAWFILTER
236ae6969434302da86de1169545939461ac7147b9reed    SkDrawFilter* setDrawFilter(SkDrawFilter*) override;
246ae6969434302da86de1169545939461ac7147b9reed#endif
256ae6969434302da86de1169545939461ac7147b9reed
269c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void willSave() override;
279c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    SaveLayerStrategy getSaveLayerStrategy(const SaveLayerRec&) override;
289c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void willRestore() override;
299c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
309c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didConcat(const SkMatrix&) override;
319c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didSetMatrix(const SkMatrix&) override;
32cbdf007bc2eb85056a1a5c75c088202becba2d16mtklein    void didTranslate(SkScalar, SkScalar) override;
339c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
34c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRect  (const   SkRect&, SkClipOp, ClipEdgeStyle) override;
35c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRRect (const  SkRRect&, SkClipOp, ClipEdgeStyle) override;
36c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipPath  (const   SkPath&, SkClipOp, ClipEdgeStyle) override;
37c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRegion(const SkRegion&, SkClipOp) override;
389c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
399c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPaint (const SkPaint&) override;
4044df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawPath  (const SkPath&, const SkPaint&) override;
4144df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawRect  (const SkRect&, const SkPaint&) override;
4244df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawRegion(const SkRegion&, const SkPaint&) override;
4344df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawOval  (const SkRect&, const SkPaint&) override;
44ac3aa245acc7b469aa2f0d0078e53401d78ac8b9bsalomon    void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override;
459c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawRRect (const SkRRect&, const SkPaint&) override;
469c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override;
479c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
489c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawDrawable(SkDrawable*, const SkMatrix*) override;
499c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override;
509c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawAnnotation(const SkRect&, const char[], SkData*) override;
519c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
529c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawText      (const void*, size_t, SkScalar x, SkScalar y, const SkPaint&) override;
539c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPosText   (const void*, size_t, const SkPoint[], const SkPaint&) override;
549c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPosTextH  (const void*, size_t, const SkScalar[], SkScalar, const SkPaint&) override;
559c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextOnPath(const void*, size_t,
569c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                          const SkPath&, const SkMatrix*, const SkPaint&) override;
579c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextRSXform(const void*, size_t,
589c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                           const SkRSXform[], const SkRect*, const SkPaint&) override;
599c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextBlob(const SkTextBlob*, SkScalar, SkScalar, const SkPaint&) override;
609c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
619c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmap(const SkBitmap&, SkScalar, SkScalar, const SkPaint*) override;
62168820625c35a8c19f66c661efcbce7a5e334837msarett    void onDrawBitmapLattice(const SkBitmap&, const Lattice&, const SkRect&,
63168820625c35a8c19f66c661efcbce7a5e334837msarett                             const SkPaint*) override;
649c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmapNine(const SkBitmap&, const SkIRect&, const SkRect&, const SkPaint*) override;
659c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmapRect(const SkBitmap&, const SkRect*, const SkRect&, const SkPaint*,
669c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                          SrcRectConstraint) override;
679c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
689c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImage(const SkImage*, SkScalar, SkScalar, const SkPaint*) override;
699c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageLattice(const SkImage*, const Lattice&, const SkRect&, const SkPaint*) override;
709c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&, const SkPaint*) override;
719c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
729c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                         SrcRectConstraint) override;
739c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
749c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPatch(const SkPoint[12], const SkColor[4],
75faba3715b8ddfaa0ce4df79bc8006e9bc7694e5bMike Reed                     const SkPoint[4], SkBlendMode, const SkPaint&) override;
769c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) override;
77e88a1cb20e6b4c9f099070112225a88693a4630bMike Reed    void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&) override;
789c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
79faba3715b8ddfaa0ce4df79bc8006e9bc7694e5bMike Reed                     int, SkBlendMode, const SkRect*, const SkPaint*) override;
809c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
819c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#ifdef SK_EXPERIMENTAL_SHADOWING
829c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didTranslateZ(SkScalar) override;
83e6f5d5623160a69e1585f5121a3695092327dfe0vjiaoblack    void onDrawShadowedPicture(const SkPicture*, const SkMatrix*,
84e6f5d5623160a69e1585f5121a3695092327dfe0vjiaoblack                               const SkPaint*, const SkShadowParams& params) override;
859c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#else
869c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didTranslateZ(SkScalar);
87e6f5d5623160a69e1585f5121a3695092327dfe0vjiaoblack    void onDrawShadowedPicture(const SkPicture*, const SkMatrix*,
88e6f5d5623160a69e1585f5121a3695092327dfe0vjiaoblack                               const SkPaint*, const SkShadowParams& params);
899c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#endif
909c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
919c5052f16b249d2b7674ea86bd24ed0038ccc61fmtkleinprivate:
92439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malita    typedef SkNoDrawCanvas INHERITED;
93439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malita
949c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    SkLiteDL* fDL;
959c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein};
969c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
979c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#endif//SkLiteRecorder_DEFINED
98