diff options
Diffstat (limited to 'src/utils/debugger/SkDebugCanvas.cpp')
-rw-r--r-- | src/utils/debugger/SkDebugCanvas.cpp | 60 |
1 files changed, 36 insertions, 24 deletions
diff --git a/src/utils/debugger/SkDebugCanvas.cpp b/src/utils/debugger/SkDebugCanvas.cpp index b4813e4103..0f2b9e0f05 100644 --- a/src/utils/debugger/SkDebugCanvas.cpp +++ b/src/utils/debugger/SkDebugCanvas.cpp @@ -16,6 +16,7 @@ SkDebugCanvas::SkDebugCanvas(int width, int height) : INHERITED(width, height) + , fPicture(NULL) , fWidth(width) , fHeight(height) , fFilter(false) @@ -55,12 +56,13 @@ SkDebugCanvas::~SkDebugCanvas() { } void SkDebugCanvas::addDrawCommand(SkDrawCommand* command) { + command->setOffset(this->getOpID()); fCommandVector.push(command); } void SkDebugCanvas::draw(SkCanvas* canvas) { if (!fCommandVector.isEmpty()) { - drawTo(canvas, fCommandVector.count() - 1); + this->drawTo(canvas, fCommandVector.count() - 1); } } @@ -380,6 +382,16 @@ SkTArray<SkString>* SkDebugCanvas::getDrawCommandsAsStrings() const { return commandString; } +SkTDArray<size_t>* SkDebugCanvas::getDrawCommandOffsets() const { + SkTDArray<size_t>* commandOffsets = new SkTDArray<size_t>; + if (!fCommandVector.isEmpty()) { + for (int i = 0; i < fCommandVector.count(); i ++) { + *commandOffsets->push() = fCommandVector[i]->offset(); + } + } + return commandOffsets; +} + void SkDebugCanvas::overrideTexFiltering(bool overrideTexFiltering, SkPaint::FilterLevel level) { if (NULL == fTexOverrideFilter) { fTexOverrideFilter = new SkTexOverrideFilter; @@ -390,7 +402,7 @@ void SkDebugCanvas::overrideTexFiltering(bool overrideTexFiltering, SkPaint::Fil } void SkDebugCanvas::clear(SkColor color) { - addDrawCommand(new SkClearCommand(color)); + this->addDrawCommand(new SkClearCommand(color)); } void SkDebugCanvas::onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle edgeStyle) { @@ -429,71 +441,71 @@ void SkDebugCanvas::didConcat(const SkMatrix& matrix) { void SkDebugCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, const SkPaint* paint = NULL) { - addDrawCommand(new SkDrawBitmapCommand(bitmap, left, top, paint)); + this->addDrawCommand(new SkDrawBitmapCommand(bitmap, left, top, paint)); } void SkDebugCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, const SkPaint* paint, SkCanvas::DrawBitmapRectFlags flags) { - addDrawCommand(new SkDrawBitmapRectCommand(bitmap, src, dst, paint, flags)); + this->addDrawCommand(new SkDrawBitmapRectCommand(bitmap, src, dst, paint, flags)); } void SkDebugCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& matrix, const SkPaint* paint) { - addDrawCommand(new SkDrawBitmapMatrixCommand(bitmap, matrix, paint)); + this->addDrawCommand(new SkDrawBitmapMatrixCommand(bitmap, matrix, paint)); } void SkDebugCanvas::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkRect& dst, const SkPaint* paint) { - addDrawCommand(new SkDrawBitmapNineCommand(bitmap, center, dst, paint)); + this->addDrawCommand(new SkDrawBitmapNineCommand(bitmap, center, dst, paint)); } void SkDebugCanvas::drawData(const void* data, size_t length) { - addDrawCommand(new SkDrawDataCommand(data, length)); + this->addDrawCommand(new SkDrawDataCommand(data, length)); } void SkDebugCanvas::beginCommentGroup(const char* description) { - addDrawCommand(new SkBeginCommentGroupCommand(description)); + this->addDrawCommand(new SkBeginCommentGroupCommand(description)); } void SkDebugCanvas::addComment(const char* kywd, const char* value) { - addDrawCommand(new SkCommentCommand(kywd, value)); + this->addDrawCommand(new SkCommentCommand(kywd, value)); } void SkDebugCanvas::endCommentGroup() { - addDrawCommand(new SkEndCommentGroupCommand()); + this->addDrawCommand(new SkEndCommentGroupCommand()); } void SkDebugCanvas::drawOval(const SkRect& oval, const SkPaint& paint) { - addDrawCommand(new SkDrawOvalCommand(oval, paint)); + this->addDrawCommand(new SkDrawOvalCommand(oval, paint)); } void SkDebugCanvas::drawPaint(const SkPaint& paint) { - addDrawCommand(new SkDrawPaintCommand(paint)); + this->addDrawCommand(new SkDrawPaintCommand(paint)); } void SkDebugCanvas::drawPath(const SkPath& path, const SkPaint& paint) { - addDrawCommand(new SkDrawPathCommand(path, paint)); + this->addDrawCommand(new SkDrawPathCommand(path, paint)); } void SkDebugCanvas::drawPicture(SkPicture& picture) { - addDrawCommand(new SkDrawPictureCommand(picture)); + this->addDrawCommand(new SkDrawPictureCommand(picture)); } void SkDebugCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { - addDrawCommand(new SkDrawPointsCommand(mode, count, pts, paint)); + this->addDrawCommand(new SkDrawPointsCommand(mode, count, pts, paint)); } void SkDebugCanvas::drawPosText(const void* text, size_t byteLength, const SkPoint pos[], const SkPaint& paint) { - addDrawCommand(new SkDrawPosTextCommand(text, byteLength, pos, paint)); + this->addDrawCommand(new SkDrawPosTextCommand(text, byteLength, pos, paint)); } void SkDebugCanvas::drawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], SkScalar constY, const SkPaint& paint) { - addDrawCommand( + this->addDrawCommand( new SkDrawPosTextHCommand(text, byteLength, xpos, constY, paint)); } @@ -503,7 +515,7 @@ void SkDebugCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { } void SkDebugCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { - addDrawCommand(new SkDrawRRectCommand(rrect, paint)); + this->addDrawCommand(new SkDrawRRectCommand(rrect, paint)); } void SkDebugCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, @@ -513,17 +525,17 @@ void SkDebugCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, void SkDebugCanvas::drawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint = NULL) { - addDrawCommand(new SkDrawSpriteCommand(bitmap, left, top, paint)); + this->addDrawCommand(new SkDrawSpriteCommand(bitmap, left, top, paint)); } void SkDebugCanvas::drawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, const SkPaint& paint) { - addDrawCommand(new SkDrawTextCommand(text, byteLength, x, y, paint)); + this->addDrawCommand(new SkDrawTextCommand(text, byteLength, x, y, paint)); } void SkDebugCanvas::drawTextOnPath(const void* text, size_t byteLength, const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) { - addDrawCommand( + this->addDrawCommand( new SkDrawTextOnPathCommand(text, byteLength, path, matrix, paint)); } @@ -531,8 +543,8 @@ void SkDebugCanvas::drawVertices(VertexMode vmode, int vertexCount, const SkPoint vertices[], const SkPoint texs[], const SkColor colors[], SkXfermode*, const uint16_t indices[], int indexCount, const SkPaint& paint) { - addDrawCommand(new SkDrawVerticesCommand(vmode, vertexCount, vertices, - texs, colors, NULL, indices, indexCount, paint)); + this->addDrawCommand(new SkDrawVerticesCommand(vmode, vertexCount, vertices, + texs, colors, NULL, indices, indexCount, paint)); } void SkDebugCanvas::onPushCull(const SkRect& cullRect) { @@ -562,7 +574,7 @@ SkCanvas::SaveLayerStrategy SkDebugCanvas::willSaveLayer(const SkRect* bounds, c } void SkDebugCanvas::didSetMatrix(const SkMatrix& matrix) { - addDrawCommand(new SkSetMatrixCommand(matrix)); + this->addDrawCommand(new SkSetMatrixCommand(matrix)); this->INHERITED::didSetMatrix(matrix); } |