diff options
author | danakj <danakj@chromium.org> | 2014-11-04 11:48:43 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-04 11:48:44 -0800 |
commit | 8f757f540a8378c7b1354aab3d4650eaa920b17a (patch) | |
tree | 1eda77abd398e7fbfb37c1a29c3996c31de556e6 | |
parent | a30b2ee0da169b00fb10d1a45b8e36441e16ce26 (diff) |
Add tracing to the SkCanvas drawFoo() methods to find long draw ops.
BUG=skia:3088
Review URL: https://codereview.chromium.org/702473004
-rw-r--r-- | src/core/SkCanvas.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index bb6d1baad2..70b705e1e0 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -25,6 +25,7 @@ #include "SkTextBlob.h" #include "SkTextFormatParams.h" #include "SkTLazy.h" +#include "SkTraceEvent.h" #include "SkUtils.h" #if SK_SUPPORT_GPU @@ -1238,6 +1239,7 @@ void SkCanvas::internalDrawDevice(SkBaseDevice* srcDev, int x, int y, void SkCanvas::drawSprite(const SkBitmap& bitmap, int x, int y, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawSprite()"); if (bitmap.drawsNothing()) { return; } @@ -1684,6 +1686,7 @@ GrContext* SkCanvas::getGrContext() { void SkCanvas::drawDRRect(const SkRRect& outer, const SkRRect& inner, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawDRRect()"); if (outer.isEmpty()) { return; } @@ -1721,6 +1724,7 @@ void SkCanvas::onDiscard() { } void SkCanvas::drawPaint(const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPaint()"); this->internalDrawPaint(paint); } @@ -1736,6 +1740,7 @@ void SkCanvas::internalDrawPaint(const SkPaint& paint) { void SkCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], const SkPaint& paint) { + TRACE_EVENT1("skia", "SkCanvas::drawPoints()", "count", static_cast<uint64_t>(count)); if ((long)count <= 0) { return; } @@ -1767,6 +1772,7 @@ void SkCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[], } void SkCanvas::drawRect(const SkRect& r, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawRect()"); SkRect storage; const SkRect* bounds = NULL; if (paint.canComputeFastBounds()) { @@ -1786,6 +1792,7 @@ void SkCanvas::drawRect(const SkRect& r, const SkPaint& paint) { } void SkCanvas::drawOval(const SkRect& oval, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawOval()"); SkRect storage; const SkRect* bounds = NULL; if (paint.canComputeFastBounds()) { @@ -1805,6 +1812,7 @@ void SkCanvas::drawOval(const SkRect& oval, const SkPaint& paint) { } void SkCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawRRect()"); SkRect storage; const SkRect* bounds = NULL; if (paint.canComputeFastBounds()) { @@ -1854,6 +1862,7 @@ void SkCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, } void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPath()"); if (!path.isFinite()) { return; } @@ -1887,17 +1896,20 @@ void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) { void SkCanvas::drawImage(const SkImage* image, SkScalar left, SkScalar top, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawImage()"); image->draw(this, left, top, paint); } void SkCanvas::drawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawImageRect()"); image->drawRect(this, src, dst, paint); } void SkCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawBitmap()"); SkDEBUGCODE(bitmap.validate();) if (NULL == paint || paint->canComputeFastBounds()) { @@ -1955,12 +1967,14 @@ void SkCanvas::internalDrawBitmapRect(const SkBitmap& bitmap, const SkRect* src, void SkCanvas::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst, const SkPaint* paint, DrawBitmapRectFlags flags) { + TRACE_EVENT0("skia", "SkCanvas::drawBitmapRectToRect()"); SkDEBUGCODE(bitmap.validate();) this->internalDrawBitmapRect(bitmap, src, dst, paint, flags); } void SkCanvas::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& matrix, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawBitmapMatrix()"); SkDEBUGCODE(bitmap.validate();) this->internalDrawBitmap(bitmap, matrix, paint); } @@ -2037,6 +2051,7 @@ void SkCanvas::internalDrawBitmapNine(const SkBitmap& bitmap, void SkCanvas::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkRect& dst, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawBitmapNine()"); SkDEBUGCODE(bitmap.validate();) // Need a device entry-point, so gpu can use a mesh @@ -2216,22 +2231,27 @@ void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, // These will become non-virtual, so they always call the (virtual) onDraw... method void SkCanvas::drawText(const void* text, size_t byteLength, SkScalar x, SkScalar y, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawText()"); this->onDrawText(text, byteLength, x, y, paint); } void SkCanvas::drawPosText(const void* text, size_t byteLength, const SkPoint pos[], const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPosText()"); this->onDrawPosText(text, byteLength, pos, paint); } void SkCanvas::drawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], SkScalar constY, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPosTextH()"); this->onDrawPosTextH(text, byteLength, xpos, constY, paint); } void SkCanvas::drawTextOnPath(const void* text, size_t byteLength, const SkPath& path, const SkMatrix* matrix, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawTextOnPath()"); this->onDrawTextOnPath(text, byteLength, path, matrix, paint); } void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawTextBlob()"); if (blob) { this->onDrawTextBlob(blob, x, y, paint); } @@ -2242,6 +2262,7 @@ void SkCanvas::drawVertices(VertexMode vmode, int vertexCount, const SkColor colors[], SkXfermode* xmode, const uint16_t indices[], int indexCount, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawVertices()"); LOOPER_BEGIN(paint, SkDrawFilter::kPath_Type, NULL) while (iter.next()) { @@ -2255,6 +2276,7 @@ void SkCanvas::drawVertices(VertexMode vmode, int vertexCount, void SkCanvas::drawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPatch()"); if (NULL == cubics) { return; } @@ -2289,6 +2311,7 @@ void SkCanvas::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], void SkCanvas::drawARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b, SkXfermode::Mode mode) { + TRACE_EVENT0("skia", "SkCanvas::drawARGB()"); SkPaint paint; paint.setARGB(a, r, g, b); @@ -2299,6 +2322,7 @@ void SkCanvas::drawARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b, } void SkCanvas::drawColor(SkColor c, SkXfermode::Mode mode) { + TRACE_EVENT0("skia", "SkCanvas::drawColor()"); SkPaint paint; paint.setColor(c); @@ -2309,6 +2333,7 @@ void SkCanvas::drawColor(SkColor c, SkXfermode::Mode mode) { } void SkCanvas::drawPoint(SkScalar x, SkScalar y, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPoint(SkPaint)"); SkPoint pt; pt.set(x, y); @@ -2316,6 +2341,7 @@ void SkCanvas::drawPoint(SkScalar x, SkScalar y, const SkPaint& paint) { } void SkCanvas::drawPoint(SkScalar x, SkScalar y, SkColor color) { + TRACE_EVENT0("skia", "SkCanvas::drawPoint(SkColor)"); SkPoint pt; SkPaint paint; @@ -2326,6 +2352,7 @@ void SkCanvas::drawPoint(SkScalar x, SkScalar y, SkColor color) { void SkCanvas::drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawLine()"); SkPoint pts[2]; pts[0].set(x0, y0); @@ -2336,6 +2363,7 @@ void SkCanvas::drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, void SkCanvas::drawRectCoords(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawRectCoords()"); SkRect r; r.set(left, top, right, bottom); @@ -2344,6 +2372,7 @@ void SkCanvas::drawRectCoords(SkScalar left, SkScalar top, void SkCanvas::drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawCircle()"); if (radius < 0) { radius = 0; } @@ -2355,6 +2384,7 @@ void SkCanvas::drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawRoundRect()"); if (rx > 0 && ry > 0) { if (paint.canComputeFastBounds()) { SkRect storage; @@ -2373,6 +2403,7 @@ void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry, void SkCanvas::drawArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle, bool useCenter, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawArc()"); if (SkScalarAbs(sweepAngle) >= SkIntToScalar(360)) { this->drawOval(oval, paint); } else { @@ -2391,6 +2422,7 @@ void SkCanvas::drawArc(const SkRect& oval, SkScalar startAngle, void SkCanvas::drawTextOnPathHV(const void* text, size_t byteLength, const SkPath& path, SkScalar hOffset, SkScalar vOffset, const SkPaint& paint) { + TRACE_EVENT0("skia", "SkCanvas::drawTextOnPathHV()"); SkMatrix matrix; matrix.setTranslate(hOffset, vOffset); @@ -2406,12 +2438,14 @@ void SkCanvas::EXPERIMENTAL_optimize(const SkPicture* picture) { } void SkCanvas::drawPicture(const SkPicture* picture) { + TRACE_EVENT0("skia", "SkCanvas::drawPicture()"); if (picture) { this->onDrawPicture(picture, NULL, NULL); } } void SkCanvas::drawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint) { + TRACE_EVENT0("skia", "SkCanvas::drawPicture(SkMatrix, SkPaint)"); if (picture) { if (matrix && matrix->isIdentity()) { matrix = NULL; |