Every native platform now runs on the HAL (makepad-hal) alone: macOS and iOS/tvOS on Metal, Windows on D3D11 (with device-loss recovery), Linux on Vulkan (X11, Wayland and direct KMS, multi-GPU laptops with per-output modes, mirror/extended arrangements and pacing) plus a GLES backend, and Android on Vulkan with media, camera, network, haptics and file access on the HAL. The old per-OS backends, the hal cfg and OpenHarmony are gone. GPU memory: the HAL reads the device budget, keeps a UI reserve and raises GpuPressure; failed allocations wait for room. One font service per host, a frame profiler, held events for hidden views, automation for tests. Our own generated Vulkan, Wayland and Windows bindings replace vendored ones. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
120 lines
3.3 KiB
Rust
120 lines
3.3 KiB
Rust
use crate::KeyCode;
|
|
|
|
pub fn android_to_makepad_key_code(key_code: u32) -> KeyCode {
|
|
match key_code {
|
|
4 => KeyCode::Back,
|
|
|
|
7 => KeyCode::Key0,
|
|
8 => KeyCode::Key1,
|
|
9 => KeyCode::Key2,
|
|
10 => KeyCode::Key3,
|
|
11 => KeyCode::Key4,
|
|
12 => KeyCode::Key5,
|
|
13 => KeyCode::Key6,
|
|
14 => KeyCode::Key7,
|
|
15 => KeyCode::Key8,
|
|
16 => KeyCode::Key9,
|
|
|
|
19 => KeyCode::ArrowUp,
|
|
20 => KeyCode::ArrowDown,
|
|
21 => KeyCode::ArrowLeft,
|
|
22 => KeyCode::ArrowRight,
|
|
|
|
29 => KeyCode::KeyA,
|
|
30 => KeyCode::KeyB,
|
|
31 => KeyCode::KeyC,
|
|
32 => KeyCode::KeyD,
|
|
33 => KeyCode::KeyE,
|
|
34 => KeyCode::KeyF,
|
|
35 => KeyCode::KeyG,
|
|
36 => KeyCode::KeyH,
|
|
37 => KeyCode::KeyI,
|
|
38 => KeyCode::KeyJ,
|
|
39 => KeyCode::KeyK,
|
|
40 => KeyCode::KeyL,
|
|
41 => KeyCode::KeyM,
|
|
42 => KeyCode::KeyN,
|
|
43 => KeyCode::KeyO,
|
|
44 => KeyCode::KeyP,
|
|
45 => KeyCode::KeyQ,
|
|
46 => KeyCode::KeyR,
|
|
47 => KeyCode::KeyS,
|
|
48 => KeyCode::KeyT,
|
|
49 => KeyCode::KeyU,
|
|
50 => KeyCode::KeyV,
|
|
51 => KeyCode::KeyW,
|
|
52 => KeyCode::KeyX,
|
|
53 => KeyCode::KeyY,
|
|
54 => KeyCode::KeyZ,
|
|
55 => KeyCode::Comma,
|
|
56 => KeyCode::Period,
|
|
57 => KeyCode::Alt,
|
|
58 => KeyCode::Alt,
|
|
59 => KeyCode::Shift,
|
|
60 => KeyCode::Shift,
|
|
61 => KeyCode::Tab,
|
|
62 => KeyCode::Space,
|
|
|
|
66 => KeyCode::ReturnKey,
|
|
67 => KeyCode::Backspace,
|
|
68 => KeyCode::Backtick,
|
|
69 => KeyCode::Minus,
|
|
70 => KeyCode::Equals,
|
|
71 => KeyCode::LBracket,
|
|
72 => KeyCode::RBracket,
|
|
73 => KeyCode::Backslash,
|
|
74 => KeyCode::Semicolon,
|
|
75 => KeyCode::Quote,
|
|
76 => KeyCode::Slash,
|
|
|
|
92 => KeyCode::PageUp,
|
|
93 => KeyCode::PageDown,
|
|
|
|
111 => KeyCode::Escape,
|
|
112 => KeyCode::Delete,
|
|
113 => KeyCode::Control,
|
|
114 => KeyCode::Control,
|
|
115 => KeyCode::Capslock,
|
|
116 => KeyCode::ScrollLock,
|
|
|
|
120 => KeyCode::PrintScreen,
|
|
121 => KeyCode::Pause,
|
|
122 => KeyCode::Home,
|
|
123 => KeyCode::End,
|
|
124 => KeyCode::Insert,
|
|
|
|
131 => KeyCode::F1,
|
|
132 => KeyCode::F2,
|
|
133 => KeyCode::F3,
|
|
134 => KeyCode::F4,
|
|
135 => KeyCode::F5,
|
|
136 => KeyCode::F6,
|
|
137 => KeyCode::F7,
|
|
138 => KeyCode::F8,
|
|
139 => KeyCode::F9,
|
|
140 => KeyCode::F10,
|
|
141 => KeyCode::F11,
|
|
142 => KeyCode::F12,
|
|
143 => KeyCode::Numlock,
|
|
144 => KeyCode::Numpad0,
|
|
145 => KeyCode::Numpad1,
|
|
146 => KeyCode::Numpad2,
|
|
147 => KeyCode::Numpad3,
|
|
148 => KeyCode::Numpad4,
|
|
149 => KeyCode::Numpad5,
|
|
150 => KeyCode::Numpad6,
|
|
151 => KeyCode::Numpad7,
|
|
152 => KeyCode::Numpad8,
|
|
153 => KeyCode::Numpad9,
|
|
154 => KeyCode::NumpadDivide,
|
|
155 => KeyCode::NumpadMultiply,
|
|
156 => KeyCode::NumpadSubtract,
|
|
157 => KeyCode::NumpadAdd,
|
|
158 => KeyCode::NumpadDecimal,
|
|
159 => KeyCode::NumpadDecimal,
|
|
160 => KeyCode::NumpadEnter,
|
|
161 => KeyCode::NumpadEquals,
|
|
|
|
_ => KeyCode::Unknown,
|
|
}
|
|
}
|