| Index: tools/debugger/SkDrawCommand.h
|
| diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
|
| index f67df92de7d37babbf40f1fdb1e8f745ce797492..a93461ab26a4d5a80adaa60e7884ed52551f3f20 100644
|
| --- a/tools/debugger/SkDrawCommand.h
|
| +++ b/tools/debugger/SkDrawCommand.h
|
| @@ -15,6 +15,7 @@
|
| #include "SkRRect.h"
|
| #include "SkString.h"
|
| #include "SkTDArray.h"
|
| +#include "SkJSONCPP.h"
|
|
|
| class SK_API SkDrawCommand {
|
| public:
|
| @@ -99,6 +100,14 @@ public:
|
|
|
| virtual bool render(SkCanvas* canvas) const { return false; }
|
|
|
| + virtual Json::Value toJSON() const;
|
| +
|
| + /* Converts a JSON representation of a command into a newly-allocated SkDrawCommand object. It
|
| + * is the caller's responsibility to delete this object. This method may return null if an error
|
| + * occurs.
|
| + */
|
| + static SkDrawCommand* fromJSON(Json::Value& command);
|
| +
|
| static const char* GetCommandString(OpType type);
|
|
|
| protected:
|
| @@ -114,6 +123,7 @@ public:
|
| SkRestoreCommand();
|
| void execute(SkCanvas* canvas) const override;
|
| Action action() const override { return kPopLayer_Action; }
|
| + static SkRestoreCommand* fromJSON(Json::Value& command);
|
|
|
| private:
|
| typedef SkDrawCommand INHERITED;
|
| @@ -123,6 +133,9 @@ class SkClearCommand : public SkDrawCommand {
|
| public:
|
| SkClearCommand(SkColor color);
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkClearCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkColor fColor;
|
|
|
| @@ -134,6 +147,9 @@ public:
|
| SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkClipPathCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkPath fPath;
|
| SkRegion::Op fOp;
|
| @@ -146,6 +162,9 @@ class SkClipRegionCommand : public SkDrawCommand {
|
| public:
|
| SkClipRegionCommand(const SkRegion& region, SkRegion::Op op);
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkClipRegionCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkRegion fRegion;
|
| SkRegion::Op fOp;
|
| @@ -157,6 +176,8 @@ class SkClipRectCommand : public SkDrawCommand {
|
| public:
|
| SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA);
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkClipRectCommand* fromJSON(Json::Value& command);
|
|
|
| const SkRect& rect() const { return fRect; }
|
| SkRegion::Op op() const { return fOp; }
|
| @@ -175,6 +196,8 @@ public:
|
| SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkClipRRectCommand* fromJSON(Json::Value& command);
|
|
|
| const SkRRect& rrect() const { return fRRect; }
|
| SkRegion::Op op() const { return fOp; }
|
| @@ -192,6 +215,9 @@ class SkConcatCommand : public SkDrawCommand {
|
| public:
|
| SkConcatCommand(const SkMatrix& matrix);
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkConcatCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkMatrix fMatrix;
|
|
|
| @@ -204,6 +230,9 @@ public:
|
| const SkPaint* paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawBitmapCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkBitmap fBitmap;
|
| SkScalar fLeft;
|
| @@ -220,6 +249,9 @@ public:
|
| const SkRect& dst, const SkPaint* paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawBitmapNineCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkBitmap fBitmap;
|
| SkIRect fCenter;
|
| @@ -237,6 +269,8 @@ public:
|
| SkCanvas::SrcRectConstraint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawBitmapRectCommand* fromJSON(Json::Value& command);
|
|
|
| const SkBitmap& bitmap() const { return fBitmap; }
|
|
|
| @@ -274,6 +308,9 @@ public:
|
| SkDrawImageCommand(const SkImage* image, SkScalar left, SkScalar top, const SkPaint* paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawImageCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkAutoTUnref<const SkImage> fImage;
|
| SkScalar fLeft;
|
| @@ -289,6 +326,9 @@ public:
|
| const SkPaint* paint, SkCanvas::SrcRectConstraint constraint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawImageRectCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkAutoTUnref<const SkImage> fImage;
|
| SkTLazy<SkRect> fSrc;
|
| @@ -304,6 +344,9 @@ public:
|
| SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawOvalCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkRect fOval;
|
| SkPaint fPaint;
|
| @@ -316,6 +359,9 @@ public:
|
| SkDrawPaintCommand(const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawPaintCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkPaint fPaint;
|
|
|
| @@ -327,6 +373,8 @@ public:
|
| SkDrawPathCommand(const SkPath& path, const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawPathCommand* fromJSON(Json::Value& command);
|
|
|
| private:
|
| SkPath fPath;
|
| @@ -371,6 +419,9 @@ public:
|
| virtual ~SkDrawPointsCommand() { delete [] fPts; }
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawPointsCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkCanvas::PointMode fMode;
|
| size_t fCount;
|
| @@ -386,6 +437,9 @@ public:
|
| const SkPaint& paint);
|
| virtual ~SkDrawTextCommand() { delete [] fText; }
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawTextCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| char* fText;
|
| size_t fByteLength;
|
| @@ -402,6 +456,9 @@ public:
|
| const SkPaint& paint);
|
| virtual ~SkDrawPosTextCommand() { delete [] fPos; delete [] fText; }
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawPosTextCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| char* fText;
|
| size_t fByteLength;
|
| @@ -417,6 +474,9 @@ public:
|
| const SkMatrix* matrix, const SkPaint& paint);
|
| virtual ~SkDrawTextOnPathCommand() { delete [] fText; }
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawTextOnPathCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| char* fText;
|
| size_t fByteLength;
|
| @@ -433,6 +493,7 @@ public:
|
| SkScalar constY, const SkPaint& paint);
|
| virtual ~SkDrawPosTextHCommand() { delete [] fXpos; delete [] fText; }
|
| void execute(SkCanvas* canvas) const override;
|
| +
|
| private:
|
| SkScalar* fXpos;
|
| char* fText;
|
| @@ -449,6 +510,8 @@ public:
|
|
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawTextBlobCommand* fromJSON(Json::Value& command);
|
|
|
| private:
|
| SkAutoTUnref<const SkTextBlob> fBlob;
|
| @@ -481,6 +544,8 @@ class SkDrawRectCommand : public SkDrawCommand {
|
| public:
|
| SkDrawRectCommand(const SkRect& rect, const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawRectCommand* fromJSON(Json::Value& command);
|
|
|
| const SkRect& rect() const { return fRect; }
|
| const SkPaint& paint() const { return fPaint; }
|
| @@ -496,6 +561,9 @@ public:
|
| SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawRRectCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkRRect fRRect;
|
| SkPaint fPaint;
|
| @@ -509,6 +577,9 @@ public:
|
| const SkPaint& paint);
|
| void execute(SkCanvas* canvas) const override;
|
| bool render(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkDrawDRRectCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkRRect fOuter;
|
| SkRRect fInner;
|
| @@ -526,6 +597,7 @@ public:
|
| const SkPaint& paint);
|
| virtual ~SkDrawVerticesCommand();
|
| void execute(SkCanvas* canvas) const override;
|
| +
|
| private:
|
| SkCanvas::VertexMode fVmode;
|
| int fVertexCount;
|
| @@ -545,6 +617,8 @@ public:
|
| SkSaveCommand();
|
| void execute(SkCanvas* canvas) const override;
|
| Action action() const override { return kPushLayer_Action; }
|
| + static SkSaveCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| typedef SkDrawCommand INHERITED;
|
| };
|
| @@ -552,7 +626,10 @@ private:
|
| class SkSaveLayerCommand : public SkDrawCommand {
|
| public:
|
| SkSaveLayerCommand(const SkCanvas::SaveLayerRec&);
|
| + virtual ~SkSaveLayerCommand();
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkSaveLayerCommand* fromJSON(Json::Value& command);
|
| void vizExecute(SkCanvas* canvas) const override;
|
| Action action() const override{ return kPushLayer_Action; }
|
| void setActive(bool active) override { fActive = active; }
|
| @@ -561,10 +638,11 @@ public:
|
| const SkPaint* paint() const { return fPaintPtr; }
|
|
|
| private:
|
| - SkRect fBounds;
|
| - SkPaint fPaint;
|
| - SkPaint* fPaintPtr;
|
| - uint32_t fSaveLayerFlags;
|
| + SkRect fBounds;
|
| + SkPaint fPaint;
|
| + SkPaint* fPaintPtr;
|
| + const SkImageFilter* fBackdrop;
|
| + uint32_t fSaveLayerFlags;
|
|
|
| bool fActive;
|
|
|
| @@ -576,6 +654,9 @@ public:
|
| SkSetMatrixCommand(const SkMatrix& matrix);
|
| void setUserMatrix(const SkMatrix&) override;
|
| void execute(SkCanvas* canvas) const override;
|
| + Json::Value toJSON() const override;
|
| + static SkSetMatrixCommand* fromJSON(Json::Value& command);
|
| +
|
| private:
|
| SkMatrix fUserMatrix;
|
| SkMatrix fMatrix;
|
|
|