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

Method draw

examples/scenes/src/HUD.java:26–116  ·  view source on GitHub ↗
(Canvas canvas, Scene scene, int width, int height)

Source from the content-addressed store, hash-verified

24 }
25
26 public void draw(Canvas canvas, Scene scene, int width, int height) {
27 long nativeCalls = Stats.nativeCalls;
28 Stats.nativeCalls = 0;
29 int allocated = Stats.allocated.values().stream().reduce(0, Integer::sum);
30
31 Paint bg = new Paint().setColor(0x90000000);
32 Paint fg = new Paint().setColor(0xFFFFFFFF);
33 Paint graph = new Paint().setColor(0xFF00FF00).setStrokeWidth(1);
34 Paint graphPast = new Paint().setColor(0x9000FF00).setStrokeWidth(1);
35 Paint graphLimit = new Paint().setColor(0xFFcc3333).setStrokeWidth(1);
36 FontMetrics metrics = Scene.inter13.getMetrics();
37
38 float variantsHeight = scene._variants.length > 1 ? 25 : 0;
39
40 // Background
41 canvas.translate(width - 230, height - 160 - variantsHeight - extras.size() * 25);
42 canvas.drawRRect(RRect.makeLTRB(0, 0, 225, 180 + variantsHeight, 7), bg);
43 canvas.translate(5, 5);
44
45 // Scene
46 RRect buttonBounds = RRect.makeLTRB(0, 0, 30, 20, 2);
47 Rect labelBounds = Rect.makeLTRB(35, 0, 225, 20);
48 canvas.drawRRect(buttonBounds, bg);
49 Scene.drawStringCentered(canvas, "←→", 15, 10, Scene.inter13, fg);
50 int sceneIdx = 1;
51 for (String sceneKey: Scenes.scenes.keySet()) {
52 if (sceneKey.equals(Scenes.currentScene)) break;
53 sceneIdx++;
54 }
55 Scene.drawStringLeft(canvas, sceneIdx + "/" + Scenes.scenes.size() + " " + Scenes.currentScene, labelBounds, Scene.inter13, fg);
56 canvas.translate(0, 25);
57
58 // Variants
59 if (scene._variants.length > 1) {
60 labelBounds = Rect.makeLTRB(35, 0, 225, 20);
61 canvas.drawRRect(buttonBounds, bg);
62 Scene.drawStringCentered(canvas, "↑↓", 15, 10, Scene.inter13, fg);
63 Scene.drawStringLeft(canvas, (scene._variantIdx + 1) + "/" + scene._variants.length + " " + scene.variantTitle(), labelBounds, Scene.inter13, fg);
64 canvas.translate(0, 25);
65 }
66
67 // Extras
68 for (var pair: extras) {
69 String key = pair.getFirst();
70 String label = pair.getSecond();
71 buttonBounds = RRect.makeXYWH(5, 0, 20, 20, 2);
72 canvas.drawRRect(buttonBounds, bg);
73 Scene.drawStringCentered(canvas, key, 15, 10, Scene.inter13, fg);
74 Scene.drawStringLeft(canvas, label, labelBounds, Scene.inter13, fg);
75 canvas.translate(0, 25);
76 }
77
78 // Stats
79 canvas.drawRRect(buttonBounds, bg);
80 Scene.drawStringCentered(canvas, "S", 15, 10, Scene.inter13, fg);
81 Scene.drawStringLeft(canvas, "Stats: " + (Scenes.stats ? "ON" : "OFF"), labelBounds, Scene.inter13, fg);
82 canvas.translate(0, 25);
83

Callers

nothing calls this directly

Calls 11

drawStringCenteredMethod · 0.95
drawStringLeftMethod · 0.95
setStrokeWidthMethod · 0.80
getMetricsMethod · 0.80
drawRRectMethod · 0.80
setColorMethod · 0.45
translateMethod · 0.45
equalsMethod · 0.45
variantTitleMethod · 0.45
drawLineMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected