Index: src/core/SkDevice.cpp |
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp |
index 0ff094d73bdc74801d17cff3d0b7ae31cc6a16c7..3a4090e2d37116cf20e2804aa3d88ccbdffe1f94 100644 |
--- a/src/core/SkDevice.cpp |
+++ b/src/core/SkDevice.cpp |
@@ -88,11 +88,11 @@ void SkBaseDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer, |
void SkBaseDevice::drawPatch(const SkDraw& draw, const SkPoint cubics[12], const SkColor colors[4], |
const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { |
SkPatchUtils::VertexData data; |
- |
+ |
SkISize lod = SkPatchUtils::GetLevelOfDetail(cubics, draw.fMatrix); |
// It automatically adjusts lodX and lodY in case it exceeds the number of indices. |
- // If it fails to generate the vertices, then we do not draw. |
+ // If it fails to generate the vertices, then we do not draw. |
if (SkPatchUtils::getVertexData(&data, cubics, colors, texCoords, lod.width(), lod.height())) { |
this->drawVertices(draw, SkCanvas::kTriangles_VertexMode, data.fVertexCount, data.fPoints, |
data.fTexCoords, data.fColors, xmode, data.fIndices, data.fIndexCount, |
@@ -176,7 +176,7 @@ void SkBaseDevice::drawImageNine(const SkDraw& draw, const SkImage* image, const |
void SkBaseDevice::drawBitmapNine(const SkDraw& draw, const SkBitmap& bitmap, const SkIRect& center, |
const SkRect& dst, const SkPaint& paint) { |
SkNinePatchIter iter(bitmap.width(), bitmap.height(), center, dst); |
- |
+ |
SkRect srcR, dstR; |
while (iter.next(&srcR, &dstR)) { |
this->drawBitmapRect(draw, bitmap, &srcR, dstR, paint, SkCanvas::kStrict_SrcRectConstraint); |
@@ -192,7 +192,7 @@ void SkBaseDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkR |
for (int i = 0; i < count; ++i) { |
SkPoint quad[4]; |
xform[i].toQuad(tex[i].width(), tex[i].height(), quad); |
- |
+ |
SkMatrix localM; |
localM.setRSXform(xform[i]); |
localM.preTranslate(-tex[i].left(), -tex[i].top()); |
@@ -209,7 +209,7 @@ void SkBaseDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkR |
if (colors) { |
pnt.setColorFilter(SkColorFilter::MakeModeFilter(colors[i], mode)); |
} |
- |
+ |
path.rewind(); |
path.addPoly(quad, 4, true); |
path.setConvexity(SkPath::kConvex_Convexity); |
@@ -283,24 +283,24 @@ bool SkBaseDevice::peekPixels(SkPixmap* pmap) { |
static void morphpoints(SkPoint dst[], const SkPoint src[], int count, |
SkPathMeasure& meas, const SkMatrix& matrix) { |
SkMatrix::MapXYProc proc = matrix.getMapXYProc(); |
- |
+ |
for (int i = 0; i < count; i++) { |
SkPoint pos; |
SkVector tangent; |
- |
+ |
proc(matrix, src[i].fX, src[i].fY, &pos); |
SkScalar sx = pos.fX; |
SkScalar sy = pos.fY; |
- |
+ |
if (!meas.getPosTan(sx, &pos, &tangent)) { |
// set to 0 if the measure failed, so that we just set dst == pos |
tangent.set(0, 0); |
} |
- |
+ |
/* This is the old way (that explains our approach but is way too slow |
SkMatrix matrix; |
SkPoint pt; |
- |
+ |
pt.set(sx, sy); |
matrix.setSinCos(tangent.fY, tangent.fX); |
matrix.preTranslate(-sx, 0); |
@@ -313,7 +313,7 @@ static void morphpoints(SkPoint dst[], const SkPoint src[], int count, |
} |
/* TODO |
- |
+ |
Need differentially more subdivisions when the follow-path is curvy. Not sure how to |
determine that, but we need it. I guess a cheap answer is let the caller tell us, |
but that seems like a cop-out. Another answer is to get Rob Johnson to figure it out. |
@@ -323,7 +323,7 @@ static void morphpath(SkPath* dst, const SkPath& src, SkPathMeasure& meas, |
SkPath::Iter iter(src, false); |
SkPoint srcP[4], dstP[3]; |
SkPath::Verb verb; |
- |
+ |
while ((verb = iter.next(srcP)) != SkPath::kDone_Verb) { |
switch (verb) { |
case SkPath::kMove_Verb: |
@@ -359,16 +359,16 @@ void SkBaseDevice::drawTextOnPath(const SkDraw& draw, const void* text, size_t b |
const SkPath& follow, const SkMatrix* matrix, |
const SkPaint& paint) { |
SkASSERT(byteLength == 0 || text != nullptr); |
- |
+ |
// nothing to draw |
if (text == nullptr || byteLength == 0 || draw.fRC->isEmpty()) { |
return; |
} |
- |
+ |
SkTextToPathIter iter((const char*)text, byteLength, paint, true); |
SkPathMeasure meas(follow, false); |
SkScalar hOffset = 0; |
- |
+ |
// need to measure first |
if (paint.getTextAlign() != SkPaint::kLeft_Align) { |
SkScalar pathLen = meas.getLength(); |
@@ -377,19 +377,19 @@ void SkBaseDevice::drawTextOnPath(const SkDraw& draw, const void* text, size_t b |
} |
hOffset += pathLen; |
} |
- |
+ |
const SkPath* iterPath; |
SkScalar xpos; |
SkMatrix scaledMatrix; |
SkScalar scale = iter.getPathScale(); |
- |
+ |
scaledMatrix.setScale(scale, scale); |
- |
+ |
while (iter.next(&iterPath, &xpos)) { |
if (iterPath) { |
SkPath tmp; |
SkMatrix m(scaledMatrix); |
- |
+ |
tmp.setIsVolatile(true); |
m.postTranslate(xpos + hOffset, 0); |
if (matrix) { |