| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2008 The Android Open Source Project | 2 * Copyright 2008 The Android Open Source Project |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkCanvasPriv.h" | 9 #include "SkCanvasPriv.h" |
| 10 #include "SkBitmapDevice.h" | 10 #include "SkBitmapDevice.h" |
| (...skipping 2172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2183 while (iter.next()) { | 2183 while (iter.next()) { |
| 2184 SkDeviceFilteredPaint dfp(iter.fDevice, looper.paint()); | 2184 SkDeviceFilteredPaint dfp(iter.fDevice, looper.paint()); |
| 2185 iter.fDevice->drawPosText(iter, text, byteLength, xpos, 1, textOffset, | 2185 iter.fDevice->drawPosText(iter, text, byteLength, xpos, 1, textOffset, |
| 2186 dfp.paint()); | 2186 dfp.paint()); |
| 2187 } | 2187 } |
| 2188 | 2188 |
| 2189 LOOPER_END | 2189 LOOPER_END |
| 2190 } | 2190 } |
| 2191 | 2191 |
| 2192 void SkCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPat
h& path, | 2192 void SkCanvas::onDrawTextOnPath(const void* text, size_t byteLength, const SkPat
h& path, |
| 2193 const SkMatrix* matrix, const SkPaint& paint) { | 2193 const SkMatrix* matrix, |
| 2194 SK_SUPPORT_LEGACY_DRAWTEXTONPATH_PARAM |
| 2195 const SkPaint& paint) { |
| 2194 LOOPER_BEGIN(paint, SkDrawFilter::kText_Type, NULL) | 2196 LOOPER_BEGIN(paint, SkDrawFilter::kText_Type, NULL) |
| 2195 | 2197 |
| 2196 while (iter.next()) { | 2198 while (iter.next()) { |
| 2197 iter.fDevice->drawTextOnPath(iter, text, byteLength, path, | 2199 iter.fDevice->drawTextOnPath(iter, text, byteLength, path, |
| 2198 matrix, looper.paint()); | 2200 matrix, SK_SUPPORT_LEGACY_DRAWTEXTONPATH_AR
G looper.paint()); |
| 2199 } | 2201 } |
| 2200 | 2202 |
| 2201 LOOPER_END | 2203 LOOPER_END |
| 2202 } | 2204 } |
| 2203 | 2205 |
| 2204 void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, | 2206 void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, |
| 2205 const SkPaint& paint) { | 2207 const SkPaint& paint) { |
| 2206 | 2208 |
| 2207 if (paint.canComputeFastBounds()) { | 2209 if (paint.canComputeFastBounds()) { |
| 2208 SkRect storage; | 2210 SkRect storage; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 2232 const SkPaint& paint) { | 2234 const SkPaint& paint) { |
| 2233 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPosText()"); | 2235 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPosText()"); |
| 2234 this->onDrawPosText(text, byteLength, pos, paint); | 2236 this->onDrawPosText(text, byteLength, pos, paint); |
| 2235 } | 2237 } |
| 2236 void SkCanvas::drawPosTextH(const void* text, size_t byteLength, const SkScalar
xpos[], | 2238 void SkCanvas::drawPosTextH(const void* text, size_t byteLength, const SkScalar
xpos[], |
| 2237 SkScalar constY, const SkPaint& paint) { | 2239 SkScalar constY, const SkPaint& paint) { |
| 2238 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPosTextH()"); | 2240 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPosTextH()"); |
| 2239 this->onDrawPosTextH(text, byteLength, xpos, constY, paint); | 2241 this->onDrawPosTextH(text, byteLength, xpos, constY, paint); |
| 2240 } | 2242 } |
| 2241 void SkCanvas::drawTextOnPath(const void* text, size_t byteLength, const SkPath&
path, | 2243 void SkCanvas::drawTextOnPath(const void* text, size_t byteLength, const SkPath&
path, |
| 2242 const SkMatrix* matrix, const SkPaint& paint) { | 2244 const SkMatrix* matrix, TextOnPathMethod method, |
| 2245 const SkPaint& paint) { |
| 2246 if (0 == byteLength || path.isEmpty()) { |
| 2247 return; |
| 2248 } |
| 2243 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextOnPath()"); | 2249 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextOnPath()"); |
| 2244 this->onDrawTextOnPath(text, byteLength, path, matrix, paint); | 2250 this->onDrawTextOnPath(text, byteLength, path, matrix, |
| 2251 SK_SUPPORT_LEGACY_DRAWTEXTONPATH_ARG paint); |
| 2245 } | 2252 } |
| 2246 void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, | 2253 void SkCanvas::drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, |
| 2247 const SkPaint& paint) { | 2254 const SkPaint& paint) { |
| 2248 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextBlob()"); | 2255 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextBlob()"); |
| 2249 if (blob) { | 2256 if (blob) { |
| 2250 this->onDrawTextBlob(blob, x, y, paint); | 2257 this->onDrawTextBlob(blob, x, y, paint); |
| 2251 } | 2258 } |
| 2252 } | 2259 } |
| 2253 | 2260 |
| 2254 void SkCanvas::onDrawVertices(VertexMode vmode, int vertexCount, | 2261 void SkCanvas::onDrawVertices(VertexMode vmode, int vertexCount, |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2416 path.moveTo(oval.centerX(), oval.centerY()); | 2423 path.moveTo(oval.centerX(), oval.centerY()); |
| 2417 } | 2424 } |
| 2418 path.arcTo(oval, startAngle, sweepAngle, !useCenter); | 2425 path.arcTo(oval, startAngle, sweepAngle, !useCenter); |
| 2419 if (useCenter) { | 2426 if (useCenter) { |
| 2420 path.close(); | 2427 path.close(); |
| 2421 } | 2428 } |
| 2422 this->drawPath(path, paint); | 2429 this->drawPath(path, paint); |
| 2423 } | 2430 } |
| 2424 } | 2431 } |
| 2425 | 2432 |
| 2426 void SkCanvas::drawTextOnPathHV(const void* text, size_t byteLength, | 2433 #ifdef SK_SUPPORT_LEGACY_DRAWTEXTONPATH |
| 2434 void SkCanvas::drawTextOnPathHV(const void* text, size_t length, |
| 2427 const SkPath& path, SkScalar hOffset, | 2435 const SkPath& path, SkScalar hOffset, |
| 2428 SkScalar vOffset, const SkPaint& paint) { | 2436 SkScalar vOffset, const SkPaint& paint) { |
| 2429 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextOnPathHV()"); | 2437 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawTextOnPathHV()"); |
| 2430 SkMatrix matrix; | 2438 SkMatrix matrix; |
| 2439 |
| 2440 matrix.setTranslate(hOffset, vOffset); |
| 2441 this->drawTextOnPath(text, length, path, &matrix, SkCanvas::kStretch_TextOnP
athMethod, paint); |
| 2442 } |
| 2431 | 2443 |
| 2432 matrix.setTranslate(hOffset, vOffset); | 2444 void SkCanvas::drawTextOnPath(const void* text, size_t length, const SkPath& pat
h, |
| 2433 this->drawTextOnPath(text, byteLength, path, &matrix, paint); | 2445 const SkMatrix* matrix, const SkPaint& paint) { |
| 2446 this->drawTextOnPath(text, length, path, matrix, SkCanvas::kStretch_TextOnPa
thMethod, paint); |
| 2434 } | 2447 } |
| 2448 #endif |
| 2435 | 2449 |
| 2436 /////////////////////////////////////////////////////////////////////////////// | 2450 /////////////////////////////////////////////////////////////////////////////// |
| 2437 void SkCanvas::drawPicture(const SkPicture* picture) { | 2451 void SkCanvas::drawPicture(const SkPicture* picture) { |
| 2438 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPicture()"); | 2452 TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawPicture()"); |
| 2439 if (picture) { | 2453 if (picture) { |
| 2440 this->onDrawPicture(picture, NULL, NULL); | 2454 this->onDrawPicture(picture, NULL, NULL); |
| 2441 } | 2455 } |
| 2442 } | 2456 } |
| 2443 | 2457 |
| 2444 void SkCanvas::drawPicture(const SkPicture* picture, const SkMatrix* matrix, con
st SkPaint* paint) { | 2458 void SkCanvas::drawPicture(const SkPicture* picture, const SkMatrix* matrix, con
st SkPaint* paint) { |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2564 } | 2578 } |
| 2565 | 2579 |
| 2566 if (matrix) { | 2580 if (matrix) { |
| 2567 canvas->concat(*matrix); | 2581 canvas->concat(*matrix); |
| 2568 } | 2582 } |
| 2569 } | 2583 } |
| 2570 | 2584 |
| 2571 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { | 2585 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { |
| 2572 fCanvas->restoreToCount(fSaveCount); | 2586 fCanvas->restoreToCount(fSaveCount); |
| 2573 } | 2587 } |
| OLD | NEW |