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

Method draw

examples/scenes/src/TextLineLocaleScene.java:17–82  ·  view source on GitHub ↗
(Canvas canvas, int width, int height, float dpi, int xpos, int ypos)

Source from the content-addressed store, hash-verified

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 {
70 shaper.shape(textUtf8, fontIter, bidiIter, scriptIter, langIter, opts, width, runHandler);
71 try (TextLine line = runHandler.makeLine();) {
72 canvas.drawTextLine(line, 0, 0, textFill);
73 canvas.translate(0, 50);
74 }

Callers

nothing calls this directly

Calls 8

makeShapeThenWrapMethod · 0.95
getFamilyNameMethod · 0.95
shapeMethod · 0.80
drawTextLineMethod · 0.80
shapeLineMethod · 0.80
translateMethod · 0.45
makeLineMethod · 0.45

Tested by

no test coverage detected