| Index: src/utils/debugger/SkDrawCommand.cpp
|
| diff --git a/src/utils/debugger/SkDrawCommand.cpp b/src/utils/debugger/SkDrawCommand.cpp
|
| index 38f02d9616b4a980b06b523146a303bca2e9cd06..47b29f731f87772671edfdee96df432352c7f9e1 100644
|
| --- a/src/utils/debugger/SkDrawCommand.cpp
|
| +++ b/src/utils/debugger/SkDrawCommand.cpp
|
| @@ -9,13 +9,13 @@
|
|
|
| #include "SkDrawCommand.h"
|
| #include "SkObjectParser.h"
|
| -#include "SkPicture.h"
|
| +
|
| #include "SkTextBlob.h"
|
|
|
| // TODO(chudy): Refactor into non subclass model.
|
|
|
| -SkDrawCommand::SkDrawCommand(OpType type)
|
| - : fOpType(type)
|
| +SkDrawCommand::SkDrawCommand(DrawType type)
|
| + : fDrawType(type)
|
| , fOffset(0)
|
| , fVisible(true) {
|
| }
|
| @@ -24,42 +24,49 @@
|
| fInfo.deleteAll();
|
| }
|
|
|
| -const char* SkDrawCommand::GetCommandString(OpType type) {
|
| +const char* SkDrawCommand::GetCommandString(DrawType type) {
|
| switch (type) {
|
| - case kBeginCommentGroup_OpType: return "BeginCommentGroup";
|
| - case kClipPath_OpType: return "ClipPath";
|
| - case kClipRegion_OpType: return "ClipRegion";
|
| - case kClipRect_OpType: return "ClipRect";
|
| - case kClipRRect_OpType: return "ClipRRect";
|
| - case kComment_OpType: return "Comment";
|
| - case kConcat_OpType: return "Concat";
|
| - case kDrawBitmap_OpType: return "DrawBitmap";
|
| - case kDrawBitmapNine_OpType: return "DrawBitmapNine";
|
| - case kDrawBitmapRect_OpType: return "DrawBitmapRect";
|
| - case kDrawClear_OpType: return "DrawClear";
|
| - case kDrawDRRect_OpType: return "DrawDRRect";
|
| - case kDrawOval_OpType: return "DrawOval";
|
| - case kDrawPaint_OpType: return "DrawPaint";
|
| - case kDrawPatch_OpType: return "DrawPatch";
|
| - case kDrawPath_OpType: return "DrawPath";
|
| - case kDrawPicture_OpType: return "DrawPicture";
|
| - case kDrawPoints_OpType: return "DrawPoints";
|
| - case kDrawPosText_OpType: return "DrawPosText";
|
| - case kDrawPosTextH_OpType: return "DrawPosTextH";
|
| - case kDrawRect_OpType: return "DrawRect";
|
| - case kDrawRRect_OpType: return "DrawRRect";
|
| - case kDrawSprite_OpType: return "DrawSprite";
|
| - case kDrawText_OpType: return "DrawText";
|
| - case kDrawTextBlob_OpType: return "DrawTextBlob";
|
| - case kDrawTextOnPath_OpType: return "DrawTextOnPath";
|
| - case kDrawVertices_OpType: return "DrawVertices";
|
| - case kEndCommentGroup_OpType: return "EndCommentGroup";
|
| - case kRestore_OpType: return "Restore";
|
| - case kSave_OpType: return "Save";
|
| - case kSaveLayer_OpType: return "SaveLayer";
|
| - case kSetMatrix_OpType: return "SetMatrix";
|
| + case UNUSED: SkDEBUGFAIL("DrawType UNUSED\n"); break;
|
| + case DRAW_CLEAR: return "Clear";
|
| + case CLIP_PATH: return "Clip Path";
|
| + case CLIP_REGION: return "Clip Region";
|
| + case CLIP_RECT: return "Clip Rect";
|
| + case CLIP_RRECT: return "Clip RRect";
|
| + case CONCAT: return "Concat";
|
| + case DRAW_BITMAP: return "Draw Bitmap";
|
| + case DRAW_BITMAP_MATRIX: return "Draw Bitmap Matrix";
|
| + case DRAW_BITMAP_NINE: return "Draw Bitmap Nine";
|
| + case DRAW_BITMAP_RECT_TO_RECT: return "Draw Bitmap Rect";
|
| + case DRAW_DATA: return "Draw Data";
|
| + case DRAW_OVAL: return "Draw Oval";
|
| + case DRAW_PAINT: return "Draw Paint";
|
| + case DRAW_PATH: return "Draw Path";
|
| + case DRAW_PICTURE: return "Draw Picture";
|
| + case DRAW_POINTS: return "Draw Points";
|
| + case DRAW_POS_TEXT: return "Draw Pos Text";
|
| + case DRAW_POS_TEXT_H: return "Draw Pos Text H";
|
| + case DRAW_RECT: return "Draw Rect";
|
| + case DRAW_RRECT: return "Draw RRect";
|
| + case DRAW_SPRITE: return "Draw Sprite";
|
| + case DRAW_TEXT: return "Draw Text";
|
| + case DRAW_TEXT_BLOB: return "Draw Text Blob";
|
| + case DRAW_TEXT_ON_PATH: return "Draw Text On Path";
|
| + case DRAW_VERTICES: return "Draw Vertices";
|
| + case RESTORE: return "Restore";
|
| + case ROTATE: return "Rotate";
|
| + case SAVE: return "Save";
|
| + case SAVE_LAYER: return "Save Layer";
|
| + case SCALE: return "Scale";
|
| + case SET_MATRIX: return "Set Matrix";
|
| + case SKEW: return "Skew";
|
| + case TRANSLATE: return "Translate";
|
| + case NOOP: return "NoOp";
|
| + case BEGIN_COMMENT_GROUP: return "BeginCommentGroup";
|
| + case COMMENT: return "Comment";
|
| + case END_COMMENT_GROUP: return "EndCommentGroup";
|
| + case DRAW_DRRECT: return "Draw DRRect";
|
| default:
|
| - SkDebugf("OpType error 0x%08x\n", type);
|
| + SkDebugf("DrawType error 0x%08x\n", type);
|
| SkASSERT(0);
|
| break;
|
| }
|
| @@ -68,10 +75,10 @@
|
| }
|
|
|
| SkString SkDrawCommand::toString() const {
|
| - return SkString(GetCommandString(fOpType));
|
| -}
|
| -
|
| -SkClearCommand::SkClearCommand(SkColor color) : INHERITED(kDrawClear_OpType) {
|
| + return SkString(GetCommandString(fDrawType));
|
| +}
|
| +
|
| +SkClearCommand::SkClearCommand(SkColor color) : INHERITED(DRAW_CLEAR) {
|
| fColor = color;
|
| fInfo.push(SkObjectParser::CustomTextToString("No Parameters"));
|
| }
|
| @@ -183,7 +190,7 @@
|
|
|
|
|
| SkClipPathCommand::SkClipPathCommand(const SkPath& path, SkRegion::Op op, bool doAA)
|
| - : INHERITED(kClipPath_OpType) {
|
| + : INHERITED(CLIP_PATH) {
|
| fPath = path;
|
| fOp = op;
|
| fDoAA = doAA;
|
| @@ -203,7 +210,7 @@
|
| }
|
|
|
| SkClipRegionCommand::SkClipRegionCommand(const SkRegion& region, SkRegion::Op op)
|
| - : INHERITED(kClipRegion_OpType) {
|
| + : INHERITED(CLIP_REGION) {
|
| fRegion = region;
|
| fOp = op;
|
|
|
| @@ -216,7 +223,7 @@
|
| }
|
|
|
| SkClipRectCommand::SkClipRectCommand(const SkRect& rect, SkRegion::Op op, bool doAA)
|
| - : INHERITED(kClipRect_OpType) {
|
| + : INHERITED(CLIP_RECT) {
|
| fRect = rect;
|
| fOp = op;
|
| fDoAA = doAA;
|
| @@ -231,7 +238,7 @@
|
| }
|
|
|
| SkClipRRectCommand::SkClipRRectCommand(const SkRRect& rrect, SkRegion::Op op, bool doAA)
|
| - : INHERITED(kClipRRect_OpType) {
|
| + : INHERITED(CLIP_RRECT) {
|
| fRRect = rrect;
|
| fOp = op;
|
| fDoAA = doAA;
|
| @@ -251,7 +258,7 @@
|
| }
|
|
|
| SkConcatCommand::SkConcatCommand(const SkMatrix& matrix)
|
| - : INHERITED(kConcat_OpType) {
|
| + : INHERITED(CONCAT) {
|
| fMatrix = matrix;
|
|
|
| fInfo.push(SkObjectParser::MatrixToString(matrix));
|
| @@ -263,7 +270,7 @@
|
|
|
| SkDrawBitmapCommand::SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top,
|
| const SkPaint* paint)
|
| - : INHERITED(kDrawBitmap_OpType) {
|
| + : INHERITED(DRAW_BITMAP) {
|
| fBitmap = bitmap;
|
| fLeft = left;
|
| fTop = top;
|
| @@ -293,7 +300,7 @@
|
|
|
| SkDrawBitmapNineCommand::SkDrawBitmapNineCommand(const SkBitmap& bitmap, const SkIRect& center,
|
| const SkRect& dst, const SkPaint* paint)
|
| - : INHERITED(kDrawBitmapNine_OpType) {
|
| + : INHERITED(DRAW_BITMAP_NINE) {
|
| fBitmap = bitmap;
|
| fCenter = center;
|
| fDst = dst;
|
| @@ -324,7 +331,7 @@
|
| SkDrawBitmapRectCommand::SkDrawBitmapRectCommand(const SkBitmap& bitmap, const SkRect* src,
|
| const SkRect& dst, const SkPaint* paint,
|
| SkCanvas::DrawBitmapRectFlags flags)
|
| - : INHERITED(kDrawBitmapRect_OpType) {
|
| + : INHERITED(DRAW_BITMAP_RECT_TO_RECT) {
|
| fBitmap = bitmap;
|
| if (src) {
|
| fSrc = *src;
|
| @@ -362,7 +369,7 @@
|
| }
|
|
|
| SkBeginCommentGroupCommand::SkBeginCommentGroupCommand(const char* description)
|
| - : INHERITED(kBeginCommentGroup_OpType)
|
| + : INHERITED(BEGIN_COMMENT_GROUP)
|
| , fDescription(description) {
|
| SkString* temp = new SkString;
|
| temp->appendf("Description: %s", description);
|
| @@ -370,7 +377,7 @@
|
| }
|
|
|
| SkCommentCommand::SkCommentCommand(const char* kywd, const char* value)
|
| - : INHERITED(kComment_OpType)
|
| + : INHERITED(COMMENT)
|
| , fKywd(kywd)
|
| , fValue(value) {
|
| SkString* temp = new SkString;
|
| @@ -379,11 +386,11 @@
|
| }
|
|
|
| SkEndCommentGroupCommand::SkEndCommentGroupCommand()
|
| - : INHERITED(kEndCommentGroup_OpType) {
|
| + : INHERITED(END_COMMENT_GROUP) {
|
| }
|
|
|
| SkDrawOvalCommand::SkDrawOvalCommand(const SkRect& oval, const SkPaint& paint)
|
| - : INHERITED(kDrawOval_OpType) {
|
| + : INHERITED(DRAW_OVAL) {
|
| fOval = oval;
|
| fPaint = paint;
|
|
|
| @@ -412,7 +419,7 @@
|
| }
|
|
|
| SkDrawPaintCommand::SkDrawPaintCommand(const SkPaint& paint)
|
| - : INHERITED(kDrawPaint_OpType) {
|
| + : INHERITED(DRAW_PAINT) {
|
| fPaint = paint;
|
|
|
| fInfo.push(SkObjectParser::PaintToString(paint));
|
| @@ -429,7 +436,7 @@
|
| }
|
|
|
| SkDrawPathCommand::SkDrawPathCommand(const SkPath& path, const SkPaint& paint)
|
| - : INHERITED(kDrawPath_OpType) {
|
| + : INHERITED(DRAW_PATH) {
|
| fPath = path;
|
| fPaint = paint;
|
|
|
| @@ -449,7 +456,7 @@
|
| SkDrawPictureCommand::SkDrawPictureCommand(const SkPicture* picture,
|
| const SkMatrix* matrix,
|
| const SkPaint* paint)
|
| - : INHERITED(kDrawPicture_OpType)
|
| + : INHERITED(DRAW_PICTURE)
|
| , fPicture(SkRef(picture))
|
| , fMatrixPtr(NULL)
|
| , fPaintPtr(NULL) {
|
| @@ -495,7 +502,7 @@
|
|
|
| SkDrawPointsCommand::SkDrawPointsCommand(SkCanvas::PointMode mode, size_t count,
|
| const SkPoint pts[], const SkPaint& paint)
|
| - : INHERITED(kDrawPoints_OpType) {
|
| + : INHERITED(DRAW_POINTS) {
|
| fMode = mode;
|
| fCount = count;
|
| fPts = new SkPoint[count];
|
| @@ -538,7 +545,7 @@
|
|
|
| SkDrawPosTextCommand::SkDrawPosTextCommand(const void* text, size_t byteLength,
|
| const SkPoint pos[], const SkPaint& paint)
|
| - : INHERITED(kDrawPosText_OpType) {
|
| + : INHERITED(DRAW_POS_TEXT) {
|
| size_t numPts = paint.countText(text, byteLength);
|
|
|
| fText = new char[byteLength];
|
| @@ -564,7 +571,7 @@
|
| SkDrawPosTextHCommand::SkDrawPosTextHCommand(const void* text, size_t byteLength,
|
| const SkScalar xpos[], SkScalar constY,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawPosTextH_OpType) {
|
| + : INHERITED(DRAW_POS_TEXT_H) {
|
| size_t numPts = paint.countText(text, byteLength);
|
|
|
| fText = new char[byteLength];
|
| @@ -589,7 +596,7 @@
|
|
|
| SkDrawTextBlobCommand::SkDrawTextBlobCommand(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawTextBlob_OpType)
|
| + : INHERITED(DRAW_TEXT_BLOB)
|
| , fBlob(blob)
|
| , fXPos(x)
|
| , fYPos(y)
|
| @@ -622,25 +629,8 @@
|
| return true;
|
| }
|
|
|
| -SkDrawPatchCommand::SkDrawPatchCommand(const SkPoint cubics[12], const SkColor colors[4],
|
| - const SkPoint texCoords[4], SkXfermode* xfermode,
|
| - const SkPaint& paint)
|
| - : INHERITED(kDrawPatch_OpType) {
|
| - memcpy(fCubics, cubics, sizeof(fCubics));
|
| - memcpy(fColors, colors, sizeof(fColors));
|
| - memcpy(fTexCoords, texCoords, sizeof(fTexCoords));
|
| - fXfermode.reset(xfermode);
|
| - fPaint = paint;
|
| -
|
| - fInfo.push(SkObjectParser::PaintToString(paint));
|
| -}
|
| -
|
| -void SkDrawPatchCommand::execute(SkCanvas* canvas) const {
|
| - canvas->drawPatch(fCubics, fColors, fTexCoords, fXfermode, fPaint);
|
| -}
|
| -
|
| SkDrawRectCommand::SkDrawRectCommand(const SkRect& rect, const SkPaint& paint)
|
| - : INHERITED(kDrawRect_OpType) {
|
| + : INHERITED(DRAW_RECT) {
|
| fRect = rect;
|
| fPaint = paint;
|
|
|
| @@ -653,7 +643,7 @@
|
| }
|
|
|
| SkDrawRRectCommand::SkDrawRRectCommand(const SkRRect& rrect, const SkPaint& paint)
|
| - : INHERITED(kDrawRRect_OpType) {
|
| + : INHERITED(DRAW_RRECT) {
|
| fRRect = rrect;
|
| fPaint = paint;
|
|
|
| @@ -673,7 +663,7 @@
|
| SkDrawDRRectCommand::SkDrawDRRectCommand(const SkRRect& outer,
|
| const SkRRect& inner,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawDRRect_OpType) {
|
| + : INHERITED(DRAW_DRRECT) {
|
| fOuter = outer;
|
| fInner = inner;
|
| fPaint = paint;
|
| @@ -694,7 +684,7 @@
|
|
|
| SkDrawSpriteCommand::SkDrawSpriteCommand(const SkBitmap& bitmap, int left, int top,
|
| const SkPaint* paint)
|
| - : INHERITED(kDrawSprite_OpType) {
|
| + : INHERITED(DRAW_SPRITE) {
|
| fBitmap = bitmap;
|
| fLeft = left;
|
| fTop = top;
|
| @@ -724,7 +714,7 @@
|
|
|
| SkDrawTextCommand::SkDrawTextCommand(const void* text, size_t byteLength, SkScalar x, SkScalar y,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawText_OpType) {
|
| + : INHERITED(DRAW_TEXT) {
|
| fText = new char[byteLength];
|
| memcpy(fText, text, byteLength);
|
| fByteLength = byteLength;
|
| @@ -745,7 +735,7 @@
|
| SkDrawTextOnPathCommand::SkDrawTextOnPathCommand(const void* text, size_t byteLength,
|
| const SkPath& path, const SkMatrix* matrix,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawTextOnPath_OpType) {
|
| + : INHERITED(DRAW_TEXT_ON_PATH) {
|
| fText = new char[byteLength];
|
| memcpy(fText, text, byteLength);
|
| fByteLength = byteLength;
|
| @@ -776,7 +766,7 @@
|
| const SkColor colors[], SkXfermode* xfermode,
|
| const uint16_t indices[], int indexCount,
|
| const SkPaint& paint)
|
| - : INHERITED(kDrawVertices_OpType) {
|
| + : INHERITED(DRAW_VERTICES) {
|
| fVmode = vmode;
|
|
|
| fVertexCount = vertexCount;
|
| @@ -833,7 +823,7 @@
|
| }
|
|
|
| SkRestoreCommand::SkRestoreCommand()
|
| - : INHERITED(kRestore_OpType) {
|
| + : INHERITED(RESTORE) {
|
| fInfo.push(SkObjectParser::CustomTextToString("No Parameters"));
|
| }
|
|
|
| @@ -841,8 +831,19 @@
|
| canvas->restore();
|
| }
|
|
|
| +SkRotateCommand::SkRotateCommand(SkScalar degrees)
|
| + : INHERITED(ROTATE) {
|
| + fDegrees = degrees;
|
| +
|
| + fInfo.push(SkObjectParser::ScalarToString(degrees, "SkScalar degrees: "));
|
| +}
|
| +
|
| +void SkRotateCommand::execute(SkCanvas* canvas) const {
|
| + canvas->rotate(fDegrees);
|
| +}
|
| +
|
| SkSaveCommand::SkSaveCommand()
|
| - : INHERITED(kSave_OpType) {
|
| + : INHERITED(SAVE) {
|
| }
|
|
|
| void SkSaveCommand::execute(SkCanvas* canvas) const {
|
| @@ -851,7 +852,7 @@
|
|
|
| SkSaveLayerCommand::SkSaveLayerCommand(const SkRect* bounds, const SkPaint* paint,
|
| SkCanvas::SaveFlags flags)
|
| - : INHERITED(kSaveLayer_OpType) {
|
| + : INHERITED(SAVE_LAYER) {
|
| if (bounds) {
|
| fBounds = *bounds;
|
| } else {
|
| @@ -885,8 +886,21 @@
|
| canvas->save();
|
| }
|
|
|
| +SkScaleCommand::SkScaleCommand(SkScalar sx, SkScalar sy)
|
| + : INHERITED(SCALE) {
|
| + fSx = sx;
|
| + fSy = sy;
|
| +
|
| + fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| +}
|
| +
|
| +void SkScaleCommand::execute(SkCanvas* canvas) const {
|
| + canvas->scale(fSx, fSy);
|
| +}
|
| +
|
| SkSetMatrixCommand::SkSetMatrixCommand(const SkMatrix& matrix)
|
| - : INHERITED(kSetMatrix_OpType) {
|
| + : INHERITED(SET_MATRIX) {
|
| fUserMatrix.reset();
|
| fMatrix = matrix;
|
|
|
| @@ -902,3 +916,29 @@
|
| canvas->setMatrix(temp);
|
| }
|
|
|
| +SkSkewCommand::SkSkewCommand(SkScalar sx, SkScalar sy)
|
| + : INHERITED(SKEW) {
|
| + fSx = sx;
|
| + fSy = sy;
|
| +
|
| + fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| +}
|
| +
|
| +void SkSkewCommand::execute(SkCanvas* canvas) const {
|
| + canvas->skew(fSx, fSy);
|
| +}
|
| +
|
| +SkTranslateCommand::SkTranslateCommand(SkScalar dx, SkScalar dy)
|
| + : INHERITED(TRANSLATE) {
|
| + fDx = dx;
|
| + fDy = dy;
|
| +
|
| + fInfo.push(SkObjectParser::ScalarToString(dx, "SkScalar dx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(dy, "SkScalar dy: "));
|
| +}
|
| +
|
| +void SkTranslateCommand::execute(SkCanvas* canvas) const {
|
| + canvas->translate(fDx, fDy);
|
| +}
|
| +
|
|
|