diff options
author | Mike Reed <reed@google.com> | 2019-01-07 09:31:58 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2019-01-07 15:03:06 +0000 |
commit | c4745d6e517b2d8d831f98f748e730f64338634c (patch) | |
tree | 19fe5f5abf388c9a318953ea335208d1cab29ff4 | |
parent | a47eb455360f5c34147eaa9073f3a2c289615a6c (diff) | |
download | platform_external_skqp-c4745d6e517b2d8d831f98f748e730f64338634c.tar.gz platform_external_skqp-c4745d6e517b2d8d831f98f748e730f64338634c.tar.bz2 platform_external_skqp-c4745d6e517b2d8d831f98f748e730f64338634c.zip |
use drawString with font
Bug: skia:
Change-Id: If193ce2abad59124d24478f24f2bc2fd85ac0d16
Reviewed-on: https://skia-review.googlesource.com/c/181408
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Auto-Submit: Mike Reed <reed@google.com>
-rw-r--r-- | gm/blurignorexform.cpp | 8 | ||||
-rw-r--r-- | gm/blurtextsmallradii.cpp | 5 | ||||
-rw-r--r-- | gm/downsamplebitmap.cpp | 24 | ||||
-rw-r--r-- | gm/drawatlascolor.cpp | 10 | ||||
-rw-r--r-- | gm/drawbitmaprect.cpp | 17 | ||||
-rw-r--r-- | gm/drawlooper.cpp | 6 | ||||
-rw-r--r-- | gm/gradients_degenerate.cpp | 8 | ||||
-rw-r--r-- | src/core/SkCanvas.cpp | 2 | ||||
-rw-r--r-- | tests/DrawTextTest.cpp | 18 | ||||
-rw-r--r-- | tests/PDFDocumentTest.cpp | 2 | ||||
-rw-r--r-- | tests/PictureTest.cpp | 5 |
11 files changed, 47 insertions, 58 deletions
diff --git a/gm/blurignorexform.cpp b/gm/blurignorexform.cpp index 1e89dec681..28fc19d95d 100644 --- a/gm/blurignorexform.cpp +++ b/gm/blurignorexform.cpp @@ -95,17 +95,15 @@ protected: void drawOverlay(SkCanvas* canvas) { canvas->translate(10, 0); - SkPaint textPaint; - sk_tool_utils::set_portable_typeface(&textPaint); - textPaint.setAntiAlias(true); + SkFont font(sk_tool_utils::create_portable_typeface()); canvas->save(); for (int i = 0; i < kNumBlurs; ++i) { - canvas->drawString(kBlurFlags[i].fName, 100, 0, textPaint); + canvas->drawString(kBlurFlags[i].fName, 100, 0, font, SkPaint()); canvas->translate(SkIntToScalar(130), 0); } canvas->restore(); for (auto scale : kMatrixScales) { - canvas->drawString(scale.fName, 0, 50, textPaint); + canvas->drawString(scale.fName, 0, 50, font, SkPaint()); canvas->translate(0, SkIntToScalar(150)); } } diff --git a/gm/blurtextsmallradii.cpp b/gm/blurtextsmallradii.cpp index 62572ce49d..e1e7aa14ea 100644 --- a/gm/blurtextsmallradii.cpp +++ b/gm/blurtextsmallradii.cpp @@ -7,6 +7,7 @@ #include "gm.h" #include "SkColor.h" +#include "SkFont.h" #include "SkMaskFilter.h" // GM to check the behavior from chrome bug:745290 @@ -18,11 +19,11 @@ DEF_SIMPLE_GM(blurSmallRadii, canvas, 100, 100) { paint.setColor(SK_ColorBLACK); paint.setAntiAlias(true); paint.setMaskFilter(SkMaskFilter::MakeBlur(kNormal_SkBlurStyle, sigma)); - canvas->drawString("Guest", 20, 10, paint); + canvas->drawString("Guest", 20, 10, SkFont(), paint); paint.setMaskFilter(nullptr); paint.setColor(SK_ColorWHITE); - canvas->drawString("Guest", 20, 10, paint); + canvas->drawString("Guest", 20, 10, SkFont(), paint); canvas->translate(0, 20); } } diff --git a/gm/downsamplebitmap.cpp b/gm/downsamplebitmap.cpp index 8fef1d0aed..cc521d00a0 100644 --- a/gm/downsamplebitmap.cpp +++ b/gm/downsamplebitmap.cpp @@ -83,18 +83,18 @@ static SkBitmap make_text(SkImageInfo info) { canvas.drawColor(SK_ColorWHITE); SkPaint paint; - paint.setAntiAlias(true); - paint.setSubpixelText(true); - paint.setTextSize(textSize); - - sk_tool_utils::set_portable_typeface(&paint, "serif", SkFontStyle()); - canvas.drawString("Hamburgefons", textSize/2, 1.2f*textSize, paint); - sk_tool_utils::set_portable_typeface(&paint, "serif", SkFontStyle::Bold()); - canvas.drawString("Hamburgefons", textSize/2, 2.4f*textSize, paint); - sk_tool_utils::set_portable_typeface(&paint, "serif", SkFontStyle::Italic()); - canvas.drawString("Hamburgefons", textSize/2, 3.6f*textSize, paint); - sk_tool_utils::set_portable_typeface(&paint, "serif", SkFontStyle::BoldItalic()); - canvas.drawString("Hamburgefons", textSize/2, 4.8f*textSize, paint); + SkFont font; + font.setSubpixel(true); + font.setSize(textSize); + + font.setTypeface(sk_tool_utils::create_portable_typeface("serif", SkFontStyle())); + canvas.drawString("Hamburgefons", textSize/2, 1.2f*textSize, font, paint); + font.setTypeface(sk_tool_utils::create_portable_typeface("serif", SkFontStyle::Bold())); + canvas.drawString("Hamburgefons", textSize/2, 2.4f*textSize, font, paint); + font.setTypeface(sk_tool_utils::create_portable_typeface("serif", SkFontStyle::Italic())); + canvas.drawString("Hamburgefons", textSize/2, 3.6f*textSize, font, paint); + font.setTypeface(sk_tool_utils::create_portable_typeface("serif", SkFontStyle::BoldItalic())); + canvas.drawString("Hamburgefons", textSize/2, 4.8f*textSize, font, paint); return bm; } diff --git a/gm/drawatlascolor.cpp b/gm/drawatlascolor.cpp index 3122777a3b..82bf998edb 100644 --- a/gm/drawatlascolor.cpp +++ b/gm/drawatlascolor.cpp @@ -128,16 +128,12 @@ protected: quadColors[i] = gColors[i]; } - SkPaint textP; - textP.setTextSize(SkIntToScalar(kTextPad)); - textP.setAntiAlias(true); - sk_tool_utils::set_portable_typeface(&textP, nullptr); + SkFont font(sk_tool_utils::create_portable_typeface(), kTextPad); for (int i = 0; i < numModes; ++i) { const char* label = SkBlendMode_Name(gModes[i]); - canvas->drawString(label, - i*(target.width()+kPad)+kPad, SkIntToScalar(kTextPad), - textP); + canvas->drawString(label, i*(target.width()+kPad)+kPad, SkIntToScalar(kTextPad), + font, paint); } for (int i = 0; i < numModes; ++i) { diff --git a/gm/drawbitmaprect.cpp b/gm/drawbitmaprect.cpp index 77125c5e7e..251c247fdc 100644 --- a/gm/drawbitmaprect.cpp +++ b/gm/drawbitmaprect.cpp @@ -170,13 +170,13 @@ protected: SkPaint blackPaint; SkScalar titleHeight = SK_Scalar1 * 24; blackPaint.setColor(SK_ColorBLACK); - blackPaint.setTextSize(titleHeight); blackPaint.setAntiAlias(true); - sk_tool_utils::set_portable_typeface(&blackPaint); + + SkFont font(sk_tool_utils::create_portable_typeface(), titleHeight); + SkString title; title.printf("Bitmap size: %d x %d", gBmpSize, gBmpSize); - canvas->drawString(title, 0, - titleHeight, blackPaint); + canvas->drawString(title, 0, titleHeight, font, blackPaint); canvas->translate(0, SK_Scalar1 * kPadY / 2 + titleHeight); int rowCount = 0; @@ -191,12 +191,9 @@ protected: label.appendf("%d x %d", w, h); blackPaint.setAntiAlias(true); blackPaint.setStyle(SkPaint::kFill_Style); - blackPaint.setTextSize(SK_Scalar1 * 10); - SkScalar baseline = dstRect.height() + - blackPaint.getTextSize() + SK_Scalar1 * 3; - canvas->drawString(label, - 0, baseline, - blackPaint); + font.setSize(SK_Scalar1 * 10); + SkScalar baseline = dstRect.height() + font.getSize() + SK_Scalar1 * 3; + canvas->drawString(label, 0, baseline, font, blackPaint); blackPaint.setStyle(SkPaint::kStroke_Style); blackPaint.setStrokeWidth(SK_Scalar1); blackPaint.setAntiAlias(false); diff --git a/gm/drawlooper.cpp b/gm/drawlooper.cpp index 2bb69f23e6..a9fe09f32e 100644 --- a/gm/drawlooper.cpp +++ b/gm/drawlooper.cpp @@ -37,13 +37,13 @@ protected: SkPaint paint; paint.setAntiAlias(true); - sk_tool_utils::set_portable_typeface(&paint); - paint.setTextSize(SkIntToScalar(72)); paint.setLooper(fLooper); + SkFont font(sk_tool_utils::create_portable_typeface(), 72); + canvas->drawCircle(50, 50, 30, paint); canvas->drawRect({ 150, 50, 200, 100 }, paint); - canvas->drawString("Looper", 230, 100, paint); + canvas->drawString("Looper", 230, 100, font, paint); } private: diff --git a/gm/gradients_degenerate.cpp b/gm/gradients_degenerate.cpp index 583bbed552..f09179f2a4 100644 --- a/gm/gradients_degenerate.cpp +++ b/gm/gradients_degenerate.cpp @@ -6,6 +6,7 @@ */ #include "gm.h" +#include "SkFont.h" #include "SkGradientShader.h" // NOTE: The positions define hardstops for the red and green borders. For the repeating degenerate @@ -33,13 +34,8 @@ typedef sk_sp<SkShader> (*GradientFactory)(SkShader::TileMode tm); static void draw_tile_header(SkCanvas* canvas) { canvas->save(); - SkPaint paint; - paint.setColor(SK_ColorBLACK); - paint.setTextSize(12.0f); - paint.setAntiAlias(true); - for (int i = 0; i < TILE_MODE_CT; ++i) { - canvas->drawString(TILE_NAMES[i], 0, 0, paint); + canvas->drawString(TILE_NAMES[i], 0, 0, SkFont(), SkPaint()); canvas->translate(TILE_SIZE + TILE_GAP, 0); } diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp index 4b482cf7e9..ee7cb29bfe 100644 --- a/src/core/SkCanvas.cpp +++ b/src/core/SkCanvas.cpp @@ -2539,9 +2539,11 @@ void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, LOOPER_END } +#ifdef SK_SUPPORT_LEGACY_DRAWSTRING void SkCanvas::drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint) { this->drawText(string.c_str(), string.size(), x, y, paint); } +#endif // These call the (virtual) onDraw... method void SkCanvas::drawSimpleText(const void* text, size_t byteLength, SkTextEncoding encoding, diff --git a/tests/DrawTextTest.cpp b/tests/DrawTextTest.cpp index d64a87b65b..4ae5c09105 100644 --- a/tests/DrawTextTest.cpp +++ b/tests/DrawTextTest.cpp @@ -21,6 +21,7 @@ #include "Test.h" #include <cmath> +#include <SkFont.h> static const SkColor bgColor = SK_ColorWHITE; @@ -118,12 +119,12 @@ DEF_TEST(DrawText_weirdCoordinates, r) { SkScalar oddballs[] = { 0.0f, (float)INFINITY, (float)NAN, 34359738368.0f }; for (auto x : oddballs) { - canvas->drawString("a", +x, 0.0f, SkPaint()); - canvas->drawString("a", -x, 0.0f, SkPaint()); + canvas->drawString("a", +x, 0.0f, SkFont(), SkPaint()); + canvas->drawString("a", -x, 0.0f, SkFont(), SkPaint()); } for (auto y : oddballs) { - canvas->drawString("a", 0.0f, +y, SkPaint()); - canvas->drawString("a", 0.0f, -y, SkPaint()); + canvas->drawString("a", 0.0f, +y, SkFont(), SkPaint()); + canvas->drawString("a", 0.0f, -y, SkFont(), SkPaint()); } } @@ -133,9 +134,8 @@ DEF_TEST(DrawText_weirdMatricies, r) { auto surface = SkSurface::MakeRasterN32Premul(100,100); auto canvas = surface->getCanvas(); - SkPaint paint; - paint.setAntiAlias(true); - paint.setLCDRenderText(true); + SkFont font; + font.setEdging(SkFont::Edging::kSubpixelAntiAlias); struct { SkScalar textSize; @@ -156,11 +156,11 @@ DEF_TEST(DrawText_weirdMatricies, r) { }; for (const auto& testCase : testCases) { - paint.setTextSize(testCase.textSize); + font.setSize(testCase.textSize); const SkScalar(&m)[9] = testCase.matrix; SkMatrix mat; mat.setAll(m[0], m[1], m[2], m[3], m[4], m[5], m[6], m[7], m[8]); canvas->setMatrix(mat); - canvas->drawString("Hamburgefons", 10, 10, paint); + canvas->drawString("Hamburgefons", 10, 10, font, SkPaint()); } } diff --git a/tests/PDFDocumentTest.cpp b/tests/PDFDocumentTest.cpp index bf1fedf9c3..72fc13c470 100644 --- a/tests/PDFDocumentTest.cpp +++ b/tests/PDFDocumentTest.cpp @@ -135,7 +135,7 @@ DEF_TEST(SkPDF_document_skbug_4734, r) { canvas->translate(20.0f, 10.0f); canvas->rotate(30.0f); const char text[] = "HELLO"; - canvas->drawString(text, 0, 0, SkPaint()); + canvas->drawString(text, 0, 0, SkFont(), SkPaint()); } static bool contains(const uint8_t* result, size_t size, const char expectation[]) { diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp index f9fb2c5c32..255e910774 100644 --- a/tests/PictureTest.cpp +++ b/tests/PictureTest.cpp @@ -558,9 +558,8 @@ static void test_gen_id(skiatest::Reporter* reporter) { static void test_typeface(skiatest::Reporter* reporter) { SkPictureRecorder recorder; SkCanvas* canvas = recorder.beginRecording(10, 10); - SkPaint paint; - paint.setTypeface(SkTypeface::MakeFromName("Arial", SkFontStyle::Italic())); - canvas->drawString("Q", 0, 10, paint); + SkFont font(SkTypeface::MakeFromName("Arial", SkFontStyle::Italic())); + canvas->drawString("Q", 0, 10, font, SkPaint()); sk_sp<SkPicture> picture(recorder.finishRecordingAsPicture()); SkDynamicMemoryWStream stream; picture->serialize(&stream); |