| Index: debugger/SkDrawCommand.cpp
|
| ===================================================================
|
| --- debugger/SkDrawCommand.cpp (revision 8341)
|
| +++ debugger/SkDrawCommand.cpp (working copy)
|
| @@ -283,14 +283,19 @@
|
| }
|
|
|
| DrawData::DrawData(const void* data, size_t length) {
|
| - this->fData = data;
|
| - this->fLength = length;
|
| - this->fDrawType = DRAW_DATA;
|
| - // TODO(chudy): See if we can't display data and length.
|
| + fData = new char[length];
|
| + memcpy(fData, data, length);
|
| + fLength = length;
|
| + fDrawType = DRAW_DATA;
|
| +
|
| + // TODO: add display of actual data?
|
| + SkString* str = new SkString;
|
| + str->appendf("length: %d", length);
|
| + fInfo.push(str);
|
| }
|
|
|
| void DrawData::execute(SkCanvas* canvas) {
|
| - canvas->drawData(this->fData, this->fLength);
|
| + canvas->drawData(fData, fLength);
|
| }
|
|
|
| DrawOval::DrawOval(const SkRect& oval, const SkPaint& paint) {
|
| @@ -335,14 +340,14 @@
|
| return &fBitmap;
|
| }
|
|
|
| -DrawPicture::DrawPicture(SkPicture& picture) {
|
| - this->fPicture = &picture;
|
| - this->fDrawType = DRAW_PICTURE;
|
| - this->fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
|
| +DrawPicture::DrawPicture(SkPicture& picture) :
|
| + fPicture(picture) {
|
| + fDrawType = DRAW_PICTURE;
|
| + fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
|
| }
|
|
|
| void DrawPicture::execute(SkCanvas* canvas) {
|
| - canvas->drawPicture(*this->fPicture);
|
| + canvas->drawPicture(fPicture);
|
| }
|
|
|
| DrawPoints::DrawPoints(SkCanvas::PointMode mode, size_t count,
|
| @@ -430,12 +435,12 @@
|
| }
|
|
|
| DrawRRect::DrawRRect(const SkRRect& rrect, const SkPaint& paint) {
|
| - this->fRRect = rrect;
|
| - this->fPaint = paint;
|
| - this->fDrawType = DRAW_RRECT;
|
| + fRRect = rrect;
|
| + fPaint = paint;
|
| + fDrawType = DRAW_RRECT;
|
|
|
| - this->fInfo.push(SkObjectParser::RRectToString(rrect));
|
| - this->fInfo.push(SkObjectParser::PaintToString(paint));
|
| + fInfo.push(SkObjectParser::RRectToString(rrect));
|
| + fInfo.push(SkObjectParser::PaintToString(paint));
|
| }
|
|
|
| void DrawRRect::execute(SkCanvas* canvas) {
|
| @@ -443,21 +448,29 @@
|
| }
|
|
|
| DrawSprite::DrawSprite(const SkBitmap& bitmap, int left, int top,
|
| - const SkPaint* paint, SkBitmap& resizedBitmap) {
|
| - this->fBitmap = &bitmap;
|
| - this->fLeft = left;
|
| - this->fTop = top;
|
| - this->fPaint = paint;
|
| - this->fDrawType = DRAW_SPRITE;
|
| - this->fResizedBitmap = resizedBitmap;
|
| + const SkPaint* paint, SkBitmap& resizedBitmap) {
|
| + fBitmap = bitmap;
|
| + fLeft = left;
|
| + fTop = top;
|
| + if (NULL != paint) {
|
| + fPaint = *paint;
|
| + fPaintPtr = &fPaint;
|
| + } else {
|
| + fPaintPtr = NULL;
|
| + }
|
| + fDrawType = DRAW_SPRITE;
|
| + fResizedBitmap = resizedBitmap;
|
|
|
| - this->fInfo.push(SkObjectParser::BitmapToString(bitmap));
|
| - this->fInfo.push(SkObjectParser::IntToString(left, "Left: "));
|
| - this->fInfo.push(SkObjectParser::IntToString(top, "Top: "));
|
| + fInfo.push(SkObjectParser::BitmapToString(bitmap));
|
| + fInfo.push(SkObjectParser::IntToString(left, "Left: "));
|
| + fInfo.push(SkObjectParser::IntToString(top, "Top: "));
|
| + if (NULL != paint) {
|
| + fInfo.push(SkObjectParser::PaintToString(*paint));
|
| + }
|
| }
|
|
|
| void DrawSprite::execute(SkCanvas* canvas) {
|
| - canvas->drawSprite(*this->fBitmap, this->fLeft, this->fTop, this->fPaint);
|
| + canvas->drawSprite(fBitmap, fLeft, fTop, fPaintPtr);
|
| }
|
|
|
| const SkBitmap* DrawSprite::getBitmap() const {
|
| @@ -465,65 +478,113 @@
|
| }
|
|
|
| DrawTextC::DrawTextC(const void* text, size_t byteLength, SkScalar x, SkScalar y,
|
| - const SkPaint& paint) {
|
| - this->fText = text;
|
| - this->fByteLength = byteLength;
|
| - this->fX = x;
|
| - this->fY = y;
|
| - this->fPaint = &paint;
|
| - this->fDrawType = DRAW_TEXT;
|
| + const SkPaint& paint) {
|
| + fText = new char[byteLength];
|
| + memcpy(fText, text, byteLength);
|
| + fByteLength = byteLength;
|
| + fX = x;
|
| + fY = y;
|
| + fPaint = paint;
|
| + fDrawType = DRAW_TEXT;
|
|
|
| - this->fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
|
| - this->fInfo.push(SkObjectParser::ScalarToString(x, "SkScalar x: "));
|
| - this->fInfo.push(SkObjectParser::ScalarToString(y, "SkScalar y: "));
|
| - this->fInfo.push(SkObjectParser::PaintToString(paint));
|
| + fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
|
| + fInfo.push(SkObjectParser::ScalarToString(x, "SkScalar x: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(y, "SkScalar y: "));
|
| + fInfo.push(SkObjectParser::PaintToString(paint));
|
| }
|
|
|
| void DrawTextC::execute(SkCanvas* canvas) {
|
| - canvas->drawText(this->fText, this->fByteLength, this->fX, this->fY, *this->fPaint);
|
| + canvas->drawText(fText, fByteLength, fX, fY, fPaint);
|
| }
|
|
|
| DrawTextOnPath::DrawTextOnPath(const void* text, size_t byteLength,
|
| - const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) {
|
| - this->fText = text;
|
| - this->fByteLength = byteLength;
|
| - this->fPath = &path;
|
| - this->fMatrix = matrix;
|
| - this->fPaint = &paint;
|
| - this->fDrawType = DRAW_TEXT_ON_PATH;
|
| + const SkPath& path, const SkMatrix* matrix,
|
| + const SkPaint& paint) {
|
| + fText = new char[byteLength];
|
| + memcpy(fText, text, byteLength);
|
| + fByteLength = byteLength;
|
| + fPath = path;
|
| + if (NULL != matrix) {
|
| + fMatrix = *matrix;
|
| + } else {
|
| + fMatrix.setIdentity();
|
| + }
|
| + fPaint = paint;
|
| + fDrawType = DRAW_TEXT_ON_PATH;
|
|
|
| - this->fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
|
| - this->fInfo.push(SkObjectParser::PathToString(path));
|
| - if (matrix) this->fInfo.push(SkObjectParser::MatrixToString(*matrix));
|
| - this->fInfo.push(SkObjectParser::PaintToString(paint));
|
| + fInfo.push(SkObjectParser::TextToString(text, byteLength, paint.getTextEncoding()));
|
| + fInfo.push(SkObjectParser::PathToString(path));
|
| + if (NULL != matrix) {
|
| + fInfo.push(SkObjectParser::MatrixToString(*matrix));
|
| + }
|
| + fInfo.push(SkObjectParser::PaintToString(paint));
|
| }
|
|
|
| void DrawTextOnPath::execute(SkCanvas* canvas) {
|
| - canvas->drawTextOnPath(this->fText, this->fByteLength, *this->fPath,
|
| - this->fMatrix, *this->fPaint);
|
| + canvas->drawTextOnPath(fText, fByteLength, fPath,
|
| + fMatrix.isIdentity() ? NULL : &fMatrix,
|
| + fPaint);
|
| }
|
|
|
| DrawVertices::DrawVertices(SkCanvas::VertexMode vmode, int vertexCount,
|
| - const SkPoint vertices[], const SkPoint texs[], const SkColor colors[],
|
| - SkXfermode* xfermode, const uint16_t indices[], int indexCount,
|
| - const SkPaint& paint) {
|
| - this->fVmode = vmode;
|
| - this->fVertexCount = vertexCount;
|
| - this->fTexs = texs;
|
| - this->fColors = colors;
|
| - this->fXfermode = xfermode;
|
| - this->fIndices = indices;
|
| - this->fIndexCount = indexCount;
|
| - this->fPaint = &paint;
|
| - this->fDrawType = DRAW_VERTICES;
|
| + const SkPoint vertices[], const SkPoint texs[],
|
| + const SkColor colors[], SkXfermode* xfermode,
|
| + const uint16_t indices[], int indexCount,
|
| + const SkPaint& paint) {
|
| + fVmode = vmode;
|
| +
|
| + fVertexCount = vertexCount;
|
| +
|
| + fVertices = new SkPoint[vertexCount];
|
| + memcpy(fVertices, vertices, vertexCount * sizeof(SkPoint));
|
| +
|
| + if (NULL != texs) {
|
| + fTexs = new SkPoint[vertexCount];
|
| + memcpy(fTexs, texs, vertexCount * sizeof(SkPoint));
|
| + } else {
|
| + fTexs = NULL;
|
| + }
|
| +
|
| + if (NULL != colors) {
|
| + fColors = new SkColor[vertexCount];
|
| + memcpy(fColors, colors, vertexCount * sizeof(SkColor));
|
| + } else {
|
| + fColors = NULL;
|
| + }
|
| +
|
| + fXfermode = xfermode;
|
| + if (NULL != fXfermode) {
|
| + fXfermode->ref();
|
| + }
|
| +
|
| + if (indexCount > 0) {
|
| + fIndices = new uint16_t[indexCount];
|
| + memcpy(fIndices, indices, indexCount * sizeof(uint16_t));
|
| + } else {
|
| + fIndices = NULL;
|
| + }
|
| +
|
| + fIndexCount = indexCount;
|
| + fPaint = paint;
|
| + fDrawType = DRAW_VERTICES;
|
| +
|
| // TODO(chudy)
|
| - this->fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
|
| + fInfo.push(SkObjectParser::CustomTextToString("To be implemented."));
|
| + fInfo.push(SkObjectParser::PaintToString(paint));
|
| }
|
|
|
| +DrawVertices::~DrawVertices() {
|
| + delete [] fVertices;
|
| + delete [] fTexs;
|
| + delete [] fColors;
|
| + SkSafeUnref(fXfermode);
|
| + delete [] fIndices;
|
| +}
|
| +
|
| void DrawVertices::execute(SkCanvas* canvas) {
|
| - canvas->drawVertices(this->fVmode, this->fVertexCount, this->fVertices,
|
| - this->fTexs, this->fColors, this->fXfermode, this->fIndices,
|
| - this->fIndexCount, *this->fPaint);
|
| + canvas->drawVertices(fVmode, fVertexCount, fVertices,
|
| + fTexs, fColors, fXfermode, fIndices,
|
| + fIndexCount, fPaint);
|
| }
|
|
|
| Restore::Restore() {
|
| @@ -540,14 +601,14 @@
|
| }
|
|
|
| Rotate::Rotate(SkScalar degrees) {
|
| - this->fDegrees = degrees;
|
| - this->fDrawType = ROTATE;
|
| + fDegrees = degrees;
|
| + fDrawType = ROTATE;
|
|
|
| - this->fInfo.push(SkObjectParser::ScalarToString(degrees, "SkScalar degrees: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(degrees, "SkScalar degrees: "));
|
| }
|
|
|
| void Rotate::execute(SkCanvas* canvas) {
|
| - canvas->rotate(this->fDegrees);
|
| + canvas->rotate(fDegrees);
|
| }
|
|
|
| Save::Save(SkCanvas::SaveFlags flags) {
|
| @@ -601,51 +662,51 @@
|
| }
|
|
|
| Scale::Scale(SkScalar sx, SkScalar sy) {
|
| - this->fSx = sx;
|
| - this->fSy = sy;
|
| - this->fDrawType = SCALE;
|
| + fSx = sx;
|
| + fSy = sy;
|
| + fDrawType = SCALE;
|
|
|
| - this->fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| - this->fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| }
|
|
|
| void Scale::execute(SkCanvas* canvas) {
|
| - canvas->scale(this->fSx, this->fSy);
|
| + canvas->scale(fSx, fSy);
|
| }
|
|
|
| SetMatrix::SetMatrix(const SkMatrix& matrix) {
|
| - this->fMatrix = matrix;
|
| - this->fDrawType = SET_MATRIX;
|
| + fMatrix = matrix;
|
| + fDrawType = SET_MATRIX;
|
|
|
| - this->fInfo.push(SkObjectParser::MatrixToString(matrix));
|
| + fInfo.push(SkObjectParser::MatrixToString(matrix));
|
| }
|
|
|
| void SetMatrix::execute(SkCanvas* canvas) {
|
| - canvas->setMatrix(this->fMatrix);
|
| + canvas->setMatrix(fMatrix);
|
| }
|
|
|
| Skew::Skew(SkScalar sx, SkScalar sy) {
|
| - this->fSx = sx;
|
| - this->fSy = sy;
|
| - this->fDrawType = SKEW;
|
| + fSx = sx;
|
| + fSy = sy;
|
| + fDrawType = SKEW;
|
|
|
| - this->fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| - this->fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sx, "SkScalar sx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(sy, "SkScalar sy: "));
|
| }
|
|
|
| void Skew::execute(SkCanvas* canvas) {
|
| - canvas->skew(this->fSx, this->fSy);
|
| + canvas->skew(fSx, fSy);
|
| }
|
|
|
| Translate::Translate(SkScalar dx, SkScalar dy) {
|
| - this->fDx = dx;
|
| - this->fDy = dy;
|
| - this->fDrawType = TRANSLATE;
|
| + fDx = dx;
|
| + fDy = dy;
|
| + fDrawType = TRANSLATE;
|
|
|
| - this->fInfo.push(SkObjectParser::ScalarToString(dx, "SkScalar dx: "));
|
| - this->fInfo.push(SkObjectParser::ScalarToString(dy, "SkScalar dy: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(dx, "SkScalar dx: "));
|
| + fInfo.push(SkObjectParser::ScalarToString(dy, "SkScalar dy: "));
|
| }
|
|
|
| void Translate::execute(SkCanvas* canvas) {
|
| - canvas->translate(this->fDx, this->fDy);
|
| + canvas->translate(fDx, fDy);
|
| }
|
|
|