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

Method run

examples/kwinit/src_java/Main.java:60–128  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

58 }
59
60 public void run() {
61 new Thread(() -> {
62 ExternalAPI.fireUserEvent(0);
63 }).start();
64
65 ExternalAPI.runEventLoop((str) -> {
66 var json = new JsonParser().parse(str);
67 for (var el: json.getAsJsonArray()) {
68 var event = el.getAsJsonObject();
69 var type = event.get("type").getAsString();
70 if ("UserEvent".equals(type))
71 handleUserEvent(event.get("cookie").getAsInt());
72 else if ("WindowEvent".equals(type)) {
73 event = event.get("event").getAsJsonObject();
74 type = event.get("type").getAsString();
75 if ("CloseRequested".equals(type))
76 onClose();
77 else if ("Resized".equals(type)) {
78 onResize(event.get("size").getAsJsonObject().get("width").getAsInt(),
79 event.get("size").getAsJsonObject().get("height").getAsInt());
80 } else if ("KeyboardInput".equals(type)) {
81 event = event.get("input").getAsJsonObject();
82 if ("Pressed".equals(event.get("state").getAsString())) {
83 var keyCode = event.get("virtual_key_code").getAsString();
84 onKeyDown(keyCode);
85 } else
86 log("KeyboardInput", event);
87 } else if ("ModifiersChanged".equals(type)) {
88 event = event.get("state").getAsJsonObject();
89 onModifiersChange(event.get("shift").getAsBoolean(),
90 event.get("ctrl").getAsBoolean(),
91 event.get("alt").getAsBoolean(),
92 event.get("logo").getAsBoolean());
93 } else if ("MouseInput".equals(type)) {
94 var button = event.get("button").getAsString();
95 var state = event.get("state").getAsString();
96 if ("Pressed".equals(state))
97 onMouseDown(button);
98 else if ("Released".equals(state))
99 onMouseUp(button);
100 else
101 log("MouseInput", event);
102 } else if ("CursorMoved".equals(type)) {
103 var position = event.get("position").getAsJsonObject();
104 var x = position.get("x").getAsFloat();
105 var y = position.get("y").getAsFloat();
106 float relx = x, rely = y;
107 if (event.has("screen_relative_position") && event.get("screen_relative_position").isJsonObject()) {
108 var screenPosition = event.get("screen_relative_position").getAsJsonObject();
109 if (screenPosition.has("x"))
110 relx = screenPosition.get("x").getAsFloat();
111 if (screenPosition.has("y"))
112 rely = screenPosition.get("y").getAsFloat();
113 }
114 onMouseMove(x, y, relx, rely);
115 } else if ("ChangedFullscreen".equals(type)) {
116 var fullscreen = event.get("fullscreen").getAsBoolean();
117 // if (!fullscreen)

Callers 1

mainMethod · 0.45

Calls 15

fireUserEventMethod · 0.95
runEventLoopMethod · 0.95
handleUserEventMethod · 0.95
onCloseMethod · 0.95
onResizeMethod · 0.95
onKeyDownMethod · 0.95
logMethod · 0.95
onModifiersChangeMethod · 0.95
onMouseDownMethod · 0.95
onMouseUpMethod · 0.95
onMouseMoveMethod · 0.95
onDrawMethod · 0.95

Tested by

no test coverage detected