OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
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 "gm.h" | 8 #include "gm.h" |
9 #include "SkBlurMask.h" | 9 #include "SkBlurMask.h" |
10 #include "SkBlurMaskFilter.h" | 10 #include "SkBlurMaskFilter.h" |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 } | 261 } |
262 } | 262 } |
263 | 263 |
264 DEF_SIMPLE_GM(fancyunderline, canvas, 900, 1350) { | 264 DEF_SIMPLE_GM(fancyunderline, canvas, 900, 1350) { |
265 SkPaint paint; | 265 SkPaint paint; |
266 paint.setAntiAlias(true); | 266 paint.setAntiAlias(true); |
267 const char* fam[] = { "sans-serif", "serif", "monospace" }; | 267 const char* fam[] = { "sans-serif", "serif", "monospace" }; |
268 const char test[] = "aAjJgGyY_|{-(~[,]qQ}pP}zZ"; | 268 const char test[] = "aAjJgGyY_|{-(~[,]qQ}pP}zZ"; |
269 SkPoint textPt = { 10, 80 }; | 269 SkPoint textPt = { 10, 80 }; |
270 for (int font = 0; font < 3; ++font) { | 270 for (int font = 0; font < 3; ++font) { |
271 sk_tool_utils::set_portable_typeface(&paint, fam[font], SkTypeface::kNor
mal); | 271 sk_tool_utils::set_portable_typeface(&paint, fam[font]); |
272 for (SkScalar textSize = 100; textSize > 10; textSize -= 20) { | 272 for (SkScalar textSize = 100; textSize > 10; textSize -= 20) { |
273 paint.setTextSize(textSize); | 273 paint.setTextSize(textSize); |
274 const SkScalar uWidth = textSize / 15; | 274 const SkScalar uWidth = textSize / 15; |
275 paint.setStrokeWidth(uWidth); | 275 paint.setStrokeWidth(uWidth); |
276 paint.setStyle(SkPaint::kFill_Style); | 276 paint.setStyle(SkPaint::kFill_Style); |
277 canvas->drawText(test, sizeof(test) - 1, textPt.fX, textPt.fY, paint
); | 277 canvas->drawText(test, sizeof(test) - 1, textPt.fX, textPt.fY, paint
); |
278 | 278 |
279 SkTDArray<SkScalar> intersections; | 279 SkTDArray<SkScalar> intersections; |
280 find_intercepts(test, sizeof(test) - 1, textPt.fX, textPt.fY, paint,
uWidth, | 280 find_intercepts(test, sizeof(test) - 1, textPt.fX, textPt.fY, paint,
uWidth, |
281 &intersections); | 281 &intersections); |
(...skipping 23 matching lines...) Expand all Loading... |
305 } | 305 } |
306 } | 306 } |
307 | 307 |
308 DEF_SIMPLE_GM(fancyposunderline, canvas, 900, 1350) { | 308 DEF_SIMPLE_GM(fancyposunderline, canvas, 900, 1350) { |
309 SkPaint paint; | 309 SkPaint paint; |
310 paint.setAntiAlias(true); | 310 paint.setAntiAlias(true); |
311 const char* fam[] = { "sans-serif", "serif", "monospace" }; | 311 const char* fam[] = { "sans-serif", "serif", "monospace" }; |
312 const char test[] = "aAjJgGyY_|{-(~[,]qQ}pP}zZ"; | 312 const char test[] = "aAjJgGyY_|{-(~[,]qQ}pP}zZ"; |
313 SkPoint textPt = { 10, 80 }; | 313 SkPoint textPt = { 10, 80 }; |
314 for (int font = 0; font < 3; ++font) { | 314 for (int font = 0; font < 3; ++font) { |
315 sk_tool_utils::set_portable_typeface(&paint, fam[font], SkTypeface::kNor
mal); | 315 sk_tool_utils::set_portable_typeface(&paint, fam[font]); |
316 for (SkScalar textSize = 100; textSize > 10; textSize -= 20) { | 316 for (SkScalar textSize = 100; textSize > 10; textSize -= 20) { |
317 paint.setTextSize(textSize); | 317 paint.setTextSize(textSize); |
318 const SkScalar uWidth = textSize / 15; | 318 const SkScalar uWidth = textSize / 15; |
319 paint.setStrokeWidth(uWidth); | 319 paint.setStrokeWidth(uWidth); |
320 paint.setStyle(SkPaint::kFill_Style); | 320 paint.setStyle(SkPaint::kFill_Style); |
321 int widthCount = paint.getTextWidths(test, sizeof(test) - 1, nullptr
); | 321 int widthCount = paint.getTextWidths(test, sizeof(test) - 1, nullptr
); |
322 SkTDArray<SkScalar> widths; | 322 SkTDArray<SkScalar> widths; |
323 widths.setCount(widthCount); | 323 widths.setCount(widthCount); |
324 (void) paint.getTextWidths(test, sizeof(test) - 1, widths.begin()); | 324 (void) paint.getTextWidths(test, sizeof(test) - 1, widths.begin()); |
325 SkTDArray<SkPoint> pos; | 325 SkTDArray<SkPoint> pos; |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 | 380 |
381 SkScalar start = textPt.fX; | 381 SkScalar start = textPt.fX; |
382 SkScalar end = posX; | 382 SkScalar end = posX; |
383 SkScalar uPos = pos[0].fY + uWidth; | 383 SkScalar uPos = pos[0].fY + uWidth; |
384 SkPath underline = create_underline(intersections, start, end, uPos, uWi
dth, textSize); | 384 SkPath underline = create_underline(intersections, start, end, uPos, uWi
dth, textSize); |
385 paint.setStyle(SkPaint::kStroke_Style); | 385 paint.setStyle(SkPaint::kStroke_Style); |
386 canvas->drawPath(underline, paint); | 386 canvas->drawPath(underline, paint); |
387 canvas->translate(0, textSize * 1.3f); | 387 canvas->translate(0, textSize * 1.3f); |
388 } | 388 } |
389 } | 389 } |
OLD | NEW |