|
|
|
@ -1677,7 +1677,7 @@ GrContext* SkCanvas::getGrContext() {
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawDRRect(const SkRRect& outer, const SkRRect& inner,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawDRRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (outer.isEmpty()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -1933,7 +1933,7 @@ void SkCanvas::onDiscard() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawPaint(const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPaint()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
this->internalDrawPaint(paint);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -1949,7 +1949,7 @@ void SkCanvas::internalDrawPaint(const SkPaint& paint) {
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawPoints(PointMode mode, size_t count, const SkPoint pts[],
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPoints()", "count", static_cast<uint64_t>(count));
|
|
|
|
|
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC, "count", static_cast<uint64_t>(count));
|
|
|
|
|
if ((long)count <= 0) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -1990,7 +1990,7 @@ static bool needs_autodrawlooper(SkCanvas* canvas, const SkPaint& paint) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawRect(const SkRect& r, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkASSERT(r.isSorted());
|
|
|
|
|
if (paint.canComputeFastBounds()) {
|
|
|
|
|
SkRect storage;
|
|
|
|
@ -2035,7 +2035,7 @@ void SkCanvas::onDrawRegion(const SkRegion& region, const SkPaint& paint) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawOval(const SkRect& oval, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawOval()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkASSERT(oval.isSorted());
|
|
|
|
|
if (paint.canComputeFastBounds()) {
|
|
|
|
|
SkRect storage;
|
|
|
|
@ -2056,7 +2056,7 @@ void SkCanvas::onDrawOval(const SkRect& oval, const SkPaint& paint) {
|
|
|
|
|
void SkCanvas::onDrawArc(const SkRect& oval, SkScalar startAngle,
|
|
|
|
|
SkScalar sweepAngle, bool useCenter,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawArc()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkASSERT(oval.isSorted());
|
|
|
|
|
if (paint.canComputeFastBounds()) {
|
|
|
|
|
SkRect storage;
|
|
|
|
@ -2076,7 +2076,7 @@ void SkCanvas::onDrawArc(const SkRect& oval, SkScalar startAngle,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawRRect(const SkRRect& rrect, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawRRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (paint.canComputeFastBounds()) {
|
|
|
|
|
SkRect storage;
|
|
|
|
|
if (this->quickReject(paint.computeFastBounds(rrect.getBounds(), &storage))) {
|
|
|
|
@ -2121,7 +2121,7 @@ void SkCanvas::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, const Sk
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawPath(const SkPath& path, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPath()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (!path.isFinite()) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -2172,7 +2172,7 @@ bool SkCanvas::canDrawBitmapAsSprite(SkScalar x, SkScalar y, int w, int h, const
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawImage(const SkImage* image, SkScalar x, SkScalar y, const SkPaint* paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawImage()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkRect bounds = SkRect::MakeXYWH(x, y,
|
|
|
|
|
SkIntToScalar(image->width()), SkIntToScalar(image->height()));
|
|
|
|
|
if (nullptr == paint || paint->canComputeFastBounds()) {
|
|
|
|
@ -2221,7 +2221,7 @@ void SkCanvas::onDrawImage(const SkImage* image, SkScalar x, SkScalar y, const S
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst,
|
|
|
|
|
const SkPaint* paint, SrcRectConstraint constraint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawImageRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (nullptr == paint || paint->canComputeFastBounds()) {
|
|
|
|
|
SkRect storage = dst;
|
|
|
|
|
if (paint) {
|
|
|
|
@ -2247,7 +2247,7 @@ void SkCanvas::onDrawImageRect(const SkImage* image, const SkRect* src, const Sk
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y, const SkPaint* paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawBitmap()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkDEBUGCODE(bitmap.validate();)
|
|
|
|
|
|
|
|
|
|
if (bitmap.drawsNothing()) {
|
|
|
|
@ -2331,14 +2331,14 @@ void SkCanvas::internalDrawBitmapRect(const SkBitmap& bitmap, const SkRect* src,
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawBitmapRect(const SkBitmap& bitmap, const SkRect* src, const SkRect& dst,
|
|
|
|
|
const SkPaint* paint, SrcRectConstraint constraint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawBitmapRectToRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkDEBUGCODE(bitmap.validate();)
|
|
|
|
|
this->internalDrawBitmapRect(bitmap, src, dst, paint, constraint);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawImageNine(const SkImage* image, const SkIRect& center, const SkRect& dst,
|
|
|
|
|
const SkPaint* paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawImageNine()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
|
|
|
|
|
if (nullptr == paint || paint->canComputeFastBounds()) {
|
|
|
|
|
SkRect storage;
|
|
|
|
@ -2363,7 +2363,7 @@ void SkCanvas::onDrawImageNine(const SkImage* image, const SkIRect& center, cons
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkRect& dst,
|
|
|
|
|
const SkPaint* paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawBitmapNine()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkDEBUGCODE(bitmap.validate();)
|
|
|
|
|
|
|
|
|
|
if (nullptr == paint || paint->canComputeFastBounds()) {
|
|
|
|
@ -2561,35 +2561,35 @@ void SkCanvas::drawString(const SkString& string, SkScalar x, SkScalar y, const
|
|
|
|
|
// 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(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawText()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (byteLength) {
|
|
|
|
|
this->onDrawText(text, byteLength, x, y, paint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void SkCanvas::drawPosText(const void* text, size_t byteLength, const SkPoint pos[],
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPosText()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (byteLength) {
|
|
|
|
|
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(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPosTextH()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (byteLength) {
|
|
|
|
|
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(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawTextOnPath()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (byteLength) {
|
|
|
|
|
this->onDrawTextOnPath(text, byteLength, path, matrix, paint);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void SkCanvas::drawTextRSXform(const void* text, size_t byteLength, const SkRSXform xform[],
|
|
|
|
|
const SkRect* cullRect, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawTextRSXform()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (byteLength) {
|
|
|
|
|
this->onDrawTextRSXform(text, byteLength, xform, cullRect, paint);
|
|
|
|
|
}
|
|
|
|
@ -2597,13 +2597,13 @@ void SkCanvas::drawTextRSXform(const void* text, size_t byteLength, const SkRSXf
|
|
|
|
|
void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
RETURN_ON_NULL(blob);
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawTextBlob()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
this->onDrawTextBlob(blob, x, y, paint);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::onDrawVerticesObject(const SkVertices* vertices, SkBlendMode bmode,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawVertices()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
LOOPER_BEGIN(paint, SkDrawFilter::kPath_Type, nullptr)
|
|
|
|
|
|
|
|
|
|
while (iter.next()) {
|
|
|
|
@ -2617,7 +2617,7 @@ void SkCanvas::onDrawVerticesObject(const SkVertices* vertices, SkBlendMode bmod
|
|
|
|
|
void SkCanvas::drawPatch(const SkPoint cubics[12], const SkColor colors[4],
|
|
|
|
|
const SkPoint texCoords[4], SkBlendMode bmode,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPatch()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (nullptr == cubics) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -2707,7 +2707,7 @@ void SkCanvas::onDrawAnnotation(const SkRect& rect, const char key[], SkData* va
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawColor(SkColor c, SkBlendMode mode) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawColor()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkPaint paint;
|
|
|
|
|
|
|
|
|
|
paint.setColor(c);
|
|
|
|
@ -2716,13 +2716,13 @@ void SkCanvas::drawColor(SkColor c, SkBlendMode mode) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawPoint(SkScalar x, SkScalar y, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPoint(SkPaint)");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
const SkPoint pt = { x, y };
|
|
|
|
|
this->drawPoints(kPoints_PointMode, 1, &pt, paint);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawLine()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkPoint pts[2];
|
|
|
|
|
|
|
|
|
|
pts[0].set(x0, y0);
|
|
|
|
@ -2731,7 +2731,7 @@ void SkCanvas::drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, cons
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawCircle()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (radius < 0) {
|
|
|
|
|
radius = 0;
|
|
|
|
|
}
|
|
|
|
@ -2743,7 +2743,7 @@ void SkCanvas::drawCircle(SkScalar cx, SkScalar cy, SkScalar radius, const SkPai
|
|
|
|
|
|
|
|
|
|
void SkCanvas::drawRoundRect(const SkRect& r, SkScalar rx, SkScalar ry,
|
|
|
|
|
const SkPaint& paint) {
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawRoundRect()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (rx > 0 && ry > 0) {
|
|
|
|
|
SkRRect rrect;
|
|
|
|
|
rrect.setRectXY(r, rx, ry);
|
|
|
|
@ -2756,7 +2756,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(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawArc()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (oval.isEmpty() || !sweepAngle) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
@ -2766,7 +2766,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(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawTextOnPathHV()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
SkMatrix matrix;
|
|
|
|
|
|
|
|
|
|
matrix.setTranslate(hOffset, vOffset);
|
|
|
|
@ -2787,7 +2787,7 @@ void SkCanvas::drawTextOnPathHV(const void* text, size_t byteLength,
|
|
|
|
|
void SkCanvas::drawPicture(const SkPicture* picture, const SkMatrix* matrix, const SkPaint* paint) {
|
|
|
|
|
RETURN_ON_NULL(picture);
|
|
|
|
|
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), "SkCanvas::drawPicture()");
|
|
|
|
|
TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("skia"), TRACE_FUNC);
|
|
|
|
|
if (matrix && matrix->isIdentity()) {
|
|
|
|
|
matrix = nullptr;
|
|
|
|
|
}
|
|
|
|
|