MCPcopy Create free account
hub / github.com/HumbleUI/Skija / TextLineLocaleScene

Class TextLineLocaleScene

examples/scenes/src/TextLineLocaleScene.java:12–83  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10// TODO: doesn’t work on macOS
11
12public class TextLineLocaleScene extends Scene {
13 public final Paint textFill = new Paint().setColor(0xFF000000);
14 public final Font font = new Font().setSize(36f);
15 public final FontMgr fontMgr = FontMgr.getDefault();
16
17 @Override
18 public void draw(Canvas canvas, int width, int height, float dpi, int xpos, int ypos) {
19 canvas.translate(100, 100);
20 try (var shaper = Shaper.makeShapeThenWrap();) {
21 ShapingOptions opts = ShapingOptions.DEFAULT;
22 Typeface face = fontMgr.matchFamilyStyleCharacter(null, FontStyle.NORMAL, new String[] { "ja" }, "刃".codePointAt(0));
23 String text = "刃 ja " + face.getFamilyName();
24 Iterator<LanguageRun> langIter = new TrivialLanguageRunIterator(text, "ja");
25 try (ManagedString textUtf8 = new ManagedString(text);
26 FontMgrRunIterator fontIter = new FontMgrRunIterator(textUtf8, false, font, langIter, opts);
27 IcuBidiRunIterator bidiIter = new IcuBidiRunIterator(textUtf8, false, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
28 HbIcuScriptRunIterator scriptIter = new HbIcuScriptRunIterator(textUtf8, false);
29 TextLineRunHandler runHandler = new TextLineRunHandler(textUtf8, false);)
30 {
31 // Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Hrkt");
32 // Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Jpan");
33 // Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Zinh");
34 // Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Zyyy");
35 // Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Zzzz");
36
37 shaper.shape(textUtf8, fontIter, bidiIter, scriptIter, langIter, opts, width, runHandler);
38 try (TextLine line = runHandler.makeLine();) {
39 canvas.drawTextLine(line, 0, 0, textFill);
40 canvas.translate(0, 50);
41 }
42 }
43
44 face = fontMgr.matchFamilyStyleCharacter(null, FontStyle.NORMAL, new String[] { "zh-Hans" }, "刃".codePointAt(0));
45 text = "刃 zh-Hans " + face.getFamilyName();
46 Iterator<ScriptRun> scriptIter = new TrivialScriptRunIterator(text, "Hans");
47 langIter = new TrivialLanguageRunIterator(text, "zh");
48 try (ManagedString textUtf8 = new ManagedString(text);
49 FontMgrRunIterator fontIter = new FontMgrRunIterator(textUtf8, false, font, langIter, opts);
50 IcuBidiRunIterator bidiIter = new IcuBidiRunIterator(textUtf8, false, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
51 TextLineRunHandler runHandler = new TextLineRunHandler(textUtf8, false);)
52 {
53
54 shaper.shape(textUtf8, fontIter, bidiIter, scriptIter, langIter, opts, width, runHandler);
55 try (TextLine line = runHandler.makeLine();) {
56 canvas.drawTextLine(line, 0, 0, textFill);
57 canvas.translate(0, 50);
58 }
59 }
60
61 face = fontMgr.matchFamilyStyleCharacter(null, FontStyle.NORMAL, new String[] { "zh-Hant" }, "刃".codePointAt(0));
62 text = "刃 zh-Hant " + face.getFamilyName();
63 langIter = new TrivialLanguageRunIterator(text, "zh");
64 scriptIter = new TrivialScriptRunIterator(text, "Hant");
65 try (ManagedString textUtf8 = new ManagedString(text);
66 FontMgrRunIterator fontIter = new FontMgrRunIterator(textUtf8, false, font, langIter, opts);
67 IcuBidiRunIterator bidiIter = new IcuBidiRunIterator(textUtf8, false, java.text.Bidi.DIRECTION_LEFT_TO_RIGHT);
68 TextLineRunHandler runHandler = new TextLineRunHandler(textUtf8, false);)
69 {

Callers

nothing calls this directly

Calls 3

getDefaultMethod · 0.95
setSizeMethod · 0.80
setColorMethod · 0.45

Tested by

no test coverage detected