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
307cc49d65fc5788f72458efc8fc4156cde4cca15aMike Klein    void onFlush() override;
317cc49d65fc5788f72458efc8fc4156cde4cca15aMike Klein
329c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didConcat(const SkMatrix&) override;
339c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void didSetMatrix(const SkMatrix&) override;
34cbdf007bc2eb85056a1a5c75c088202becba2d16mtklein    void didTranslate(SkScalar, SkScalar) override;
359c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
36c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRect  (const   SkRect&, SkClipOp, ClipEdgeStyle) override;
37c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRRect (const  SkRRect&, SkClipOp, ClipEdgeStyle) override;
38c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipPath  (const   SkPath&, SkClipOp, ClipEdgeStyle) override;
39c1f7774e8d327e3c98b4094c9c01d26e27013f71Mike Reed    void onClipRegion(const SkRegion&, SkClipOp) override;
409c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
419c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPaint (const SkPaint&) override;
4244df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawPath  (const SkPath&, const SkPaint&) override;
4344df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawRect  (const SkRect&, const SkPaint&) override;
4444df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawRegion(const SkRegion&, const SkPaint&) override;
4544df651ebefc284acc2f66425dff3ea0b0e14b36msarett    void onDrawOval  (const SkRect&, const SkPaint&) override;
46ac3aa245acc7b469aa2f0d0078e53401d78ac8b9bsalomon    void onDrawArc(const SkRect&, SkScalar, SkScalar, bool, const SkPaint&) override;
479c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawRRect (const SkRRect&, const SkPaint&) override;
489c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawDRRect(const SkRRect&, const SkRRect&, const SkPaint&) override;
499c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
509c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawDrawable(SkDrawable*, const SkMatrix*) override;
519c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*) override;
529c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawAnnotation(const SkRect&, const char[], SkData*) override;
539c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
549c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawText      (const void*, size_t, SkScalar x, SkScalar y, const SkPaint&) override;
559c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPosText   (const void*, size_t, const SkPoint[], const SkPaint&) override;
569c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPosTextH  (const void*, size_t, const SkScalar[], SkScalar, const SkPaint&) override;
579c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextOnPath(const void*, size_t,
589c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                          const SkPath&, const SkMatrix*, const SkPaint&) override;
599c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextRSXform(const void*, size_t,
609c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                           const SkRSXform[], const SkRect*, const SkPaint&) override;
619c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawTextBlob(const SkTextBlob*, SkScalar, SkScalar, const SkPaint&) override;
629c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
639c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmap(const SkBitmap&, SkScalar, SkScalar, const SkPaint*) override;
64168820625c35a8c19f66c661efcbce7a5e334837msarett    void onDrawBitmapLattice(const SkBitmap&, const Lattice&, const SkRect&,
65168820625c35a8c19f66c661efcbce7a5e334837msarett                             const SkPaint*) override;
669c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmapNine(const SkBitmap&, const SkIRect&, const SkRect&, const SkPaint*) override;
679c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawBitmapRect(const SkBitmap&, const SkRect*, const SkRect&, const SkPaint*,
689c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                          SrcRectConstraint) override;
699c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
709c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImage(const SkImage*, SkScalar, SkScalar, const SkPaint*) override;
719c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageLattice(const SkImage*, const Lattice&, const SkRect&, const SkPaint*) override;
729c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageNine(const SkImage*, const SkIRect&, const SkRect&, const SkPaint*) override;
739c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
749c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein                         SrcRectConstraint) override;
759c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
769c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPatch(const SkPoint[12], const SkColor[4],
77faba3715b8ddfaa0ce4df79bc8006e9bc7694e5bMike Reed                     const SkPoint[4], SkBlendMode, const SkPaint&) override;
789c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawPoints(PointMode, size_t count, const SkPoint pts[], const SkPaint&) override;
79e88a1cb20e6b4c9f099070112225a88693a4630bMike Reed    void onDrawVerticesObject(const SkVertices*, SkBlendMode, const SkPaint&) override;
809c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[], const SkColor[],
81faba3715b8ddfaa0ce4df79bc8006e9bc7694e5bMike Reed                     int, SkBlendMode, const SkRect*, const SkPaint*) override;
824204da25aa4c6e0b321314aa32fd9affb4865563Mike Reed    void onDrawShadowRec(const SkPath&, const SkDrawShadowRec&) override;
839c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
849c5052f16b249d2b7674ea86bd24ed0038ccc61fmtkleinprivate:
85439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malita    typedef SkNoDrawCanvas INHERITED;
86439ace939b6aaa58408ece0e9e89b633353571aeFlorin Malita
879c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein    SkLiteDL* fDL;
889c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein};
899c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein
909c5052f16b249d2b7674ea86bd24ed0038ccc61fmtklein#endif//SkLiteRecorder_DEFINED
91