1 #if 0 // Disabled until updated to use current API. 2 // Copyright 2019 Google LLC. 3 // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. 4 #include "tools/fiddle/examples.h" 5 // HASH=005502b502c1282cb8d306d6c8d998fb 6 REG_FIDDLE(Canvas_drawTextBlob, 256, 120, false, 0) { 7 void draw(SkCanvas* canvas) { 8 SkTextBlobBuilder textBlobBuilder; 9 const char bunny[] = "/(^x^)\\"; 10 const int len = sizeof(bunny) - 1; 11 uint16_t glyphs[len]; 12 SkPaint paint; 13 paint.textToGlyphs(bunny, len, glyphs); 14 paint.setTextEncoding(SkTextEncoding::kGlyphID); 15 SkFont font; 16 int runs[] = { 3, 1, 3 }; 17 SkPoint textPos = { 20, 100 }; 18 int glyphIndex = 0; 19 for (auto runLen : runs) { 20 font.setSize(1 == runLen ? 20 : 50); 21 const SkTextBlobBuilder::RunBuffer& run = 22 textBlobBuilder.allocRun(font, runLen, textPos.fX, textPos.fY); 23 memcpy(run.glyphs, &glyphs[glyphIndex], sizeof(glyphs[0]) * runLen); 24 paint.setTextSize(1 == runLen ? 20 : 50); 25 textPos.fX += paint.measureText(&glyphs[glyphIndex], sizeof(glyphs[0]) * runLen, nullptr); 26 glyphIndex += runLen; 27 } 28 sk_sp<const SkTextBlob> blob = textBlobBuilder.make(); 29 paint.reset(); 30 canvas->drawTextBlob(blob.get(), 0, 0, paint); 31 } 32 } // END FIDDLE 33 #endif // Disabled until updated to use current API. 34