aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/debugger/SkDrawCommand.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/debugger/SkDrawCommand.h')
-rw-r--r--tools/debugger/SkDrawCommand.h137
1 files changed, 26 insertions, 111 deletions
diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
index 5a14c4fbff..7bac9e4858 100644
--- a/tools/debugger/SkDrawCommand.h
+++ b/tools/debugger/SkDrawCommand.h
@@ -93,12 +93,6 @@ public:
virtual Json::Value toJSON(UrlDataManager& urlDataManager) 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, UrlDataManager& urlDataManager);
-
static const char* GetCommandString(OpType type);
// Helper methods for converting things to JSON
@@ -132,7 +126,6 @@ class SkRestoreCommand : public SkDrawCommand {
public:
SkRestoreCommand();
void execute(SkCanvas* canvas) const override;
- static SkRestoreCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
typedef SkDrawCommand INHERITED;
@@ -143,7 +136,6 @@ public:
SkClearCommand(SkColor color);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkClearCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkColor fColor;
@@ -157,7 +149,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkClipPathCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkPath fPath;
@@ -172,7 +163,6 @@ public:
SkClipRegionCommand(const SkRegion& region, SkClipOp op);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkClipRegionCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRegion fRegion;
@@ -186,11 +176,6 @@ public:
SkClipRectCommand(const SkRect& rect, SkClipOp op, bool doAA);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkClipRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
-
- const SkRect& rect() const { return fRect; }
- SkClipOp op() const { return fOp; }
- bool doAA() const { return fDoAA; }
private:
SkRect fRect;
@@ -206,11 +191,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkClipRRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
-
- const SkRRect& rrect() const { return fRRect; }
- SkClipOp op() const { return fOp; }
- bool doAA() const { return fDoAA; }
private:
SkRRect fRRect;
@@ -225,7 +205,6 @@ public:
SkConcatCommand(const SkMatrix& matrix);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkConcatCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkMatrix fMatrix;
@@ -238,7 +217,6 @@ public:
SkDrawAnnotationCommand(const SkRect&, const char key[], sk_sp<SkData> value);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawAnnotationCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRect fRect;
@@ -255,14 +233,12 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawBitmapCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
- SkBitmap fBitmap;
- SkScalar fLeft;
- SkScalar fTop;
- SkPaint fPaint;
- SkPaint* fPaintPtr;
+ SkBitmap fBitmap;
+ SkScalar fLeft;
+ SkScalar fTop;
+ SkTLazy<SkPaint> fPaint;
typedef SkDrawCommand INHERITED;
};
@@ -274,8 +250,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawBitmapLatticeCommand* fromJSON(Json::Value& command,
- UrlDataManager& urlDataManager);
private:
SkBitmap fBitmap;
@@ -293,14 +267,12 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawBitmapNineCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
- SkBitmap fBitmap;
- SkIRect fCenter;
- SkRect fDst;
- SkPaint fPaint;
- SkPaint* fPaintPtr;
+ SkBitmap fBitmap;
+ SkIRect fCenter;
+ SkRect fDst;
+ SkTLazy<SkPaint> fPaint;
typedef SkDrawCommand INHERITED;
};
@@ -313,34 +285,12 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawBitmapRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
-
- const SkBitmap& bitmap() const { return fBitmap; }
-
- // The non-const 'paint' method allows modification of this object's
- // SkPaint. For this reason the ctor and setPaint method make a local copy.
- // The 'fPaintPtr' member acts a signal that the local SkPaint is valid
- // (since only an SkPaint* is passed into the ctor).
- const SkPaint* paint() const { return fPaintPtr; }
- SkPaint* paint() { return fPaintPtr; }
-
- void setPaint(const SkPaint& paint) { fPaint = paint; fPaintPtr = &fPaint; }
-
- const SkRect* srcRect() const { return fSrc.isEmpty() ? nullptr : &fSrc; }
- void setSrcRect(const SkRect& src) { fSrc = src; }
-
- const SkRect& dstRect() const { return fDst; }
- void setDstRect(const SkRect& dst) { fDst = dst; }
-
- SkCanvas::SrcRectConstraint constraint() const { return fConstraint; }
- void setConstraint(SkCanvas::SrcRectConstraint constraint) { fConstraint = constraint; }
private:
SkBitmap fBitmap;
- SkRect fSrc;
+ SkTLazy<SkRect> fSrc;
SkRect fDst;
- SkPaint fPaint;
- SkPaint* fPaintPtr;
+ SkTLazy<SkPaint> fPaint;
SkCanvas::SrcRectConstraint fConstraint;
typedef SkDrawCommand INHERITED;
@@ -352,7 +302,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawImageCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
sk_sp<const SkImage> fImage;
@@ -370,8 +319,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawImageLatticeCommand* fromJSON(Json::Value& command,
- UrlDataManager& urlDataManager);
private:
sk_sp<const SkImage> fImage;
@@ -389,14 +336,12 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawImageNineCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
sk_sp<const SkImage> fImage;
SkIRect fCenter;
SkRect fDst;
- SkPaint fPaint;
- SkPaint* fPaintPtr;
+ SkTLazy<SkPaint> fPaint;
typedef SkDrawCommand INHERITED;
};
@@ -408,7 +353,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawImageRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
sk_sp<const SkImage> fImage;
@@ -426,7 +370,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawOvalCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRect fOval;
@@ -442,7 +385,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawArcCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRect fOval;
@@ -460,7 +402,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPaintCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkPaint fPaint;
@@ -474,7 +415,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPathCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkPath fPath;
@@ -516,16 +456,13 @@ class SkDrawPointsCommand : public SkDrawCommand {
public:
SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count, const SkPoint pts[],
const SkPaint& paint);
- ~SkDrawPointsCommand() override { delete [] fPts; }
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPointsCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkCanvas::PointMode fMode;
- size_t fCount;
- SkPoint* fPts;
+ SkTDArray<SkPoint> fPts;
SkPaint fPaint;
typedef SkDrawCommand INHERITED;
@@ -537,7 +474,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawRegionCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRegion fRegion;
@@ -553,7 +489,6 @@ public:
~SkDrawTextCommand() override { delete [] fText; }
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawTextCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
char* fText;
@@ -572,7 +507,6 @@ public:
~SkDrawPosTextCommand() override { delete [] fPos; delete [] fText; }
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPosTextCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
char* fText;
@@ -590,14 +524,13 @@ public:
~SkDrawTextOnPathCommand() override { delete [] fText; }
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawTextOnPathCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
- char* fText;
- size_t fByteLength;
- SkPath fPath;
- SkMatrix fMatrix;
- SkPaint fPaint;
+ char* fText;
+ size_t fByteLength;
+ SkPath fPath;
+ SkTLazy<SkMatrix> fMatrix;
+ SkPaint fPaint;
typedef SkDrawCommand INHERITED;
};
@@ -609,15 +542,13 @@ public:
~SkDrawTextRSXformCommand() override { delete[] fText; delete[] fXform; }
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawTextRSXformCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
- char* fText;
- size_t fByteLength;
- SkRSXform* fXform;
- SkRect* fCull;
- SkRect fCullStorage;
- SkPaint fPaint;
+ char* fText;
+ size_t fByteLength;
+ SkRSXform* fXform;
+ SkTLazy<SkRect> fCull;
+ SkPaint fPaint;
typedef SkDrawCommand INHERITED;
};
@@ -629,7 +560,6 @@ public:
~SkDrawPosTextHCommand() override { delete [] fXpos; delete [] fText; }
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPosTextHCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkScalar* fXpos;
@@ -648,7 +578,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawTextBlobCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
sk_sp<SkTextBlob> fBlob;
@@ -666,7 +595,6 @@ public:
const SkPaint& paint);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawPatchCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkPoint fCubics[12];
@@ -686,10 +614,7 @@ public:
SkDrawRectCommand(const SkRect& rect, const SkPaint& paint);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
- const SkRect& rect() const { return fRect; }
- const SkPaint& paint() const { return fPaint; }
private:
SkRect fRect;
SkPaint fPaint;
@@ -703,7 +628,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawRRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRRect fRRect;
@@ -719,7 +643,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawDRRectCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkRRect fOuter;
@@ -766,7 +689,6 @@ class SkSaveCommand : public SkDrawCommand {
public:
SkSaveCommand();
void execute(SkCanvas* canvas) const override;
- static SkSaveCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
typedef SkDrawCommand INHERITED;
@@ -775,19 +697,14 @@ private:
class SkSaveLayerCommand : public SkDrawCommand {
public:
SkSaveLayerCommand(const SkCanvas::SaveLayerRec&);
- ~SkSaveLayerCommand() override;
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkSaveLayerCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
-
- const SkPaint* paint() const { return fPaintPtr; }
private:
- SkRect fBounds;
- SkPaint fPaint;
- SkPaint* fPaintPtr;
- const SkImageFilter* fBackdrop;
- uint32_t fSaveLayerFlags;
+ SkTLazy<SkRect> fBounds;
+ SkTLazy<SkPaint> fPaint;
+ sk_sp<const SkImageFilter> fBackdrop;
+ uint32_t fSaveLayerFlags;
typedef SkDrawCommand INHERITED;
};
@@ -797,7 +714,6 @@ public:
SkSetMatrixCommand(const SkMatrix& matrix);
void execute(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkSetMatrixCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkMatrix fMatrix;
@@ -811,7 +727,6 @@ public:
void execute(SkCanvas* canvas) const override;
bool render(SkCanvas* canvas) const override;
Json::Value toJSON(UrlDataManager& urlDataManager) const override;
- static SkDrawShadowCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
private:
SkPath fPath;