Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Unified Diff: tools/debugger/SkDrawCommand.h

Issue 1681643002: Moved Canvas->JSON and JSON->Canvas functionality into SkDebugCanvas. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: switched from free to sk_free Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gyp/debugger.gyp ('k') | tools/debugger/SkDrawCommand.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
« no previous file with comments | « gyp/debugger.gyp ('k') | tools/debugger/SkDrawCommand.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698