Visitar URL original
Python input fixes and sketch folder asset root. · processing/libprocessing@68581d7 · GitHub
Skip to content

Commit 68581d7

Browse files
committed
Python input fixes and sketch folder asset root.
1 parent b4d70a3 commit 68581d7

11 files changed

Lines changed: 393 additions & 626 deletions

File tree

‎crates/processing_core/src/constants.rs‎

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ pub const TAU: f32 = std::f32::consts::TAU;
138138
pub const DEG_TO_RAD: f32 = std::f32::consts::PI / 180.0;
139139
pub const RAD_TO_DEG: f32 = 180.0 / std::f32::consts::PI;
140140

141-
// Key codes stay numeric (compared against `key_code`); values must match `key_code_to_u32`.
141+
// Key codes are GLFW values, mapped to Bevy `KeyCode`s by `processing_input::keys`.
142142

143143
pub const KEY_A: u32 = 65;
144144
pub const KEY_B: u32 = 66;
@@ -223,3 +223,46 @@ pub const F9: u32 = 298;
223223
pub const F10: u32 = 299;
224224
pub const F11: u32 = 300;
225225
pub const F12: u32 = 301;
226+
pub const F13: u32 = 302;
227+
pub const F14: u32 = 303;
228+
pub const F15: u32 = 304;
229+
pub const F16: u32 = 305;
230+
pub const F17: u32 = 306;
231+
pub const F18: u32 = 307;
232+
pub const F19: u32 = 308;
233+
pub const F20: u32 = 309;
234+
pub const F21: u32 = 310;
235+
pub const F22: u32 = 311;
236+
pub const F23: u32 = 312;
237+
pub const F24: u32 = 313;
238+
pub const F25: u32 = 314;
239+
240+
pub const CAPS_LOCK: u32 = 280;
241+
pub const SCROLL_LOCK: u32 = 281;
242+
pub const NUM_LOCK: u32 = 282;
243+
pub const PRINT_SCREEN: u32 = 283;
244+
pub const PAUSE: u32 = 284;
245+
246+
pub const NUMPAD_0: u32 = 320;
247+
pub const NUMPAD_1: u32 = 321;
248+
pub const NUMPAD_2: u32 = 322;
249+
pub const NUMPAD_3: u32 = 323;
250+
pub const NUMPAD_4: u32 = 324;
251+
pub const NUMPAD_5: u32 = 325;
252+
pub const NUMPAD_6: u32 = 326;
253+
pub const NUMPAD_7: u32 = 327;
254+
pub const NUMPAD_8: u32 = 328;
255+
pub const NUMPAD_9: u32 = 329;
256+
pub const NUMPAD_DECIMAL: u32 = 330;
257+
pub const NUMPAD_DIVIDE: u32 = 331;
258+
pub const NUMPAD_MULTIPLY: u32 = 332;
259+
pub const NUMPAD_SUBTRACT: u32 = 333;
260+
pub const NUMPAD_ADD: u32 = 334;
261+
pub const NUMPAD_ENTER: u32 = 335;
262+
pub const NUMPAD_EQUAL: u32 = 336;
263+
264+
pub const SHIFT_RIGHT: u32 = 344;
265+
pub const CONTROL_RIGHT: u32 = 345;
266+
pub const ALT_RIGHT: u32 = 346;
267+
pub const SUPER_RIGHT: u32 = 347;
268+
pub const CONTEXT_MENU: u32 = 348;

‎crates/processing_ffi/src/lib.rs‎

Lines changed: 15 additions & 225 deletions
Original file line numberDiff line numberDiff line change
@@ -4088,6 +4088,19 @@ pub const PROCESSING_KEY_F9: u32 = 298;
40884088
pub const PROCESSING_KEY_F10: u32 = 299;
40894089
pub const PROCESSING_KEY_F11: u32 = 300;
40904090
pub const PROCESSING_KEY_F12: u32 = 301;
4091+
pub const PROCESSING_KEY_F13: u32 = 302;
4092+
pub const PROCESSING_KEY_F14: u32 = 303;
4093+
pub const PROCESSING_KEY_F15: u32 = 304;
4094+
pub const PROCESSING_KEY_F16: u32 = 305;
4095+
pub const PROCESSING_KEY_F17: u32 = 306;
4096+
pub const PROCESSING_KEY_F18: u32 = 307;
4097+
pub const PROCESSING_KEY_F19: u32 = 308;
4098+
pub const PROCESSING_KEY_F20: u32 = 309;
4099+
pub const PROCESSING_KEY_F21: u32 = 310;
4100+
pub const PROCESSING_KEY_F22: u32 = 311;
4101+
pub const PROCESSING_KEY_F23: u32 = 312;
4102+
pub const PROCESSING_KEY_F24: u32 = 313;
4103+
pub const PROCESSING_KEY_F25: u32 = 314;
40914104
pub const PROCESSING_KEY_NUMPAD_0: u32 = 320;
40924105
pub const PROCESSING_KEY_NUMPAD_1: u32 = 321;
40934106
pub const PROCESSING_KEY_NUMPAD_2: u32 = 322;
@@ -4306,7 +4319,8 @@ pub extern "C" fn processing_key() -> u32 {
43064319
#[unsafe(no_mangle)]
43074320
pub extern "C" fn processing_key_code() -> u32 {
43084321
error::clear_error();
4309-
error::check(|| input_key_code().map(|opt| opt.map(key_code_to_u32).unwrap_or(0))).unwrap_or(0)
4322+
error::check(|| input_key_code().map(|opt| opt.and_then(key_code_to_u32).unwrap_or(0)))
4323+
.unwrap_or(0)
43104324
}
43114325

43124326
#[unsafe(no_mangle)]
@@ -4326,227 +4340,3 @@ pub extern "C" fn processing_mouse_wheel() -> f32 {
43264340
error::clear_error();
43274341
error::check(input_mouse_wheel).unwrap_or(0.0)
43284342
}
4329-
4330-
fn key_code_from_u32(val: u32) -> processing::prelude::error::Result<KeyCode> {
4331-
match val {
4332-
PROCESSING_KEY_SPACE => Ok(KeyCode::Space),
4333-
PROCESSING_KEY_QUOTE => Ok(KeyCode::Quote),
4334-
PROCESSING_KEY_COMMA => Ok(KeyCode::Comma),
4335-
PROCESSING_KEY_MINUS => Ok(KeyCode::Minus),
4336-
PROCESSING_KEY_PERIOD => Ok(KeyCode::Period),
4337-
PROCESSING_KEY_SLASH => Ok(KeyCode::Slash),
4338-
PROCESSING_KEY_0 => Ok(KeyCode::Digit0),
4339-
PROCESSING_KEY_1 => Ok(KeyCode::Digit1),
4340-
PROCESSING_KEY_2 => Ok(KeyCode::Digit2),
4341-
PROCESSING_KEY_3 => Ok(KeyCode::Digit3),
4342-
PROCESSING_KEY_4 => Ok(KeyCode::Digit4),
4343-
PROCESSING_KEY_5 => Ok(KeyCode::Digit5),
4344-
PROCESSING_KEY_6 => Ok(KeyCode::Digit6),
4345-
PROCESSING_KEY_7 => Ok(KeyCode::Digit7),
4346-
PROCESSING_KEY_8 => Ok(KeyCode::Digit8),
4347-
PROCESSING_KEY_9 => Ok(KeyCode::Digit9),
4348-
PROCESSING_KEY_SEMICOLON => Ok(KeyCode::Semicolon),
4349-
PROCESSING_KEY_EQUAL => Ok(KeyCode::Equal),
4350-
PROCESSING_KEY_A => Ok(KeyCode::KeyA),
4351-
PROCESSING_KEY_B => Ok(KeyCode::KeyB),
4352-
PROCESSING_KEY_C => Ok(KeyCode::KeyC),
4353-
PROCESSING_KEY_D => Ok(KeyCode::KeyD),
4354-
PROCESSING_KEY_E => Ok(KeyCode::KeyE),
4355-
PROCESSING_KEY_F => Ok(KeyCode::KeyF),
4356-
PROCESSING_KEY_G => Ok(KeyCode::KeyG),
4357-
PROCESSING_KEY_H => Ok(KeyCode::KeyH),
4358-
PROCESSING_KEY_I => Ok(KeyCode::KeyI),
4359-
PROCESSING_KEY_J => Ok(KeyCode::KeyJ),
4360-
PROCESSING_KEY_K => Ok(KeyCode::KeyK),
4361-
PROCESSING_KEY_L => Ok(KeyCode::KeyL),
4362-
PROCESSING_KEY_M => Ok(KeyCode::KeyM),
4363-
PROCESSING_KEY_N => Ok(KeyCode::KeyN),
4364-
PROCESSING_KEY_O => Ok(KeyCode::KeyO),
4365-
PROCESSING_KEY_P => Ok(KeyCode::KeyP),
4366-
PROCESSING_KEY_Q => Ok(KeyCode::KeyQ),
4367-
PROCESSING_KEY_R => Ok(KeyCode::KeyR),
4368-
PROCESSING_KEY_S => Ok(KeyCode::KeyS),
4369-
PROCESSING_KEY_T => Ok(KeyCode::KeyT),
4370-
PROCESSING_KEY_U => Ok(KeyCode::KeyU),
4371-
PROCESSING_KEY_V => Ok(KeyCode::KeyV),
4372-
PROCESSING_KEY_W => Ok(KeyCode::KeyW),
4373-
PROCESSING_KEY_X => Ok(KeyCode::KeyX),
4374-
PROCESSING_KEY_Y => Ok(KeyCode::KeyY),
4375-
PROCESSING_KEY_Z => Ok(KeyCode::KeyZ),
4376-
PROCESSING_KEY_BRACKET_LEFT => Ok(KeyCode::BracketLeft),
4377-
PROCESSING_KEY_BACKSLASH => Ok(KeyCode::Backslash),
4378-
PROCESSING_KEY_BRACKET_RIGHT => Ok(KeyCode::BracketRight),
4379-
PROCESSING_KEY_BACKQUOTE => Ok(KeyCode::Backquote),
4380-
PROCESSING_KEY_ESCAPE => Ok(KeyCode::Escape),
4381-
PROCESSING_KEY_ENTER => Ok(KeyCode::Enter),
4382-
PROCESSING_KEY_TAB => Ok(KeyCode::Tab),
4383-
PROCESSING_KEY_BACKSPACE => Ok(KeyCode::Backspace),
4384-
PROCESSING_KEY_INSERT => Ok(KeyCode::Insert),
4385-
PROCESSING_KEY_DELETE => Ok(KeyCode::Delete),
4386-
PROCESSING_KEY_RIGHT => Ok(KeyCode::ArrowRight),
4387-
PROCESSING_KEY_LEFT => Ok(KeyCode::ArrowLeft),
4388-
PROCESSING_KEY_DOWN => Ok(KeyCode::ArrowDown),
4389-
PROCESSING_KEY_UP => Ok(KeyCode::ArrowUp),
4390-
PROCESSING_KEY_PAGE_UP => Ok(KeyCode::PageUp),
4391-
PROCESSING_KEY_PAGE_DOWN => Ok(KeyCode::PageDown),
4392-
PROCESSING_KEY_HOME => Ok(KeyCode::Home),
4393-
PROCESSING_KEY_END => Ok(KeyCode::End),
4394-
PROCESSING_KEY_CAPS_LOCK => Ok(KeyCode::CapsLock),
4395-
PROCESSING_KEY_SCROLL_LOCK => Ok(KeyCode::ScrollLock),
4396-
PROCESSING_KEY_NUM_LOCK => Ok(KeyCode::NumLock),
4397-
PROCESSING_KEY_PRINT_SCREEN => Ok(KeyCode::PrintScreen),
4398-
PROCESSING_KEY_PAUSE => Ok(KeyCode::Pause),
4399-
PROCESSING_KEY_F1 => Ok(KeyCode::F1),
4400-
PROCESSING_KEY_F2 => Ok(KeyCode::F2),
4401-
PROCESSING_KEY_F3 => Ok(KeyCode::F3),
4402-
PROCESSING_KEY_F4 => Ok(KeyCode::F4),
4403-
PROCESSING_KEY_F5 => Ok(KeyCode::F5),
4404-
PROCESSING_KEY_F6 => Ok(KeyCode::F6),
4405-
PROCESSING_KEY_F7 => Ok(KeyCode::F7),
4406-
PROCESSING_KEY_F8 => Ok(KeyCode::F8),
4407-
PROCESSING_KEY_F9 => Ok(KeyCode::F9),
4408-
PROCESSING_KEY_F10 => Ok(KeyCode::F10),
4409-
PROCESSING_KEY_F11 => Ok(KeyCode::F11),
4410-
PROCESSING_KEY_F12 => Ok(KeyCode::F12),
4411-
PROCESSING_KEY_NUMPAD_0 => Ok(KeyCode::Numpad0),
4412-
PROCESSING_KEY_NUMPAD_1 => Ok(KeyCode::Numpad1),
4413-
PROCESSING_KEY_NUMPAD_2 => Ok(KeyCode::Numpad2),
4414-
PROCESSING_KEY_NUMPAD_3 => Ok(KeyCode::Numpad3),
4415-
PROCESSING_KEY_NUMPAD_4 => Ok(KeyCode::Numpad4),
4416-
PROCESSING_KEY_NUMPAD_5 => Ok(KeyCode::Numpad5),
4417-
PROCESSING_KEY_NUMPAD_6 => Ok(KeyCode::Numpad6),
4418-
PROCESSING_KEY_NUMPAD_7 => Ok(KeyCode::Numpad7),
4419-
PROCESSING_KEY_NUMPAD_8 => Ok(KeyCode::Numpad8),
4420-
PROCESSING_KEY_NUMPAD_9 => Ok(KeyCode::Numpad9),
4421-
PROCESSING_KEY_NUMPAD_DECIMAL => Ok(KeyCode::NumpadDecimal),
4422-
PROCESSING_KEY_NUMPAD_DIVIDE => Ok(KeyCode::NumpadDivide),
4423-
PROCESSING_KEY_NUMPAD_MULTIPLY => Ok(KeyCode::NumpadMultiply),
4424-
PROCESSING_KEY_NUMPAD_SUBTRACT => Ok(KeyCode::NumpadSubtract),
4425-
PROCESSING_KEY_NUMPAD_ADD => Ok(KeyCode::NumpadAdd),
4426-
PROCESSING_KEY_NUMPAD_ENTER => Ok(KeyCode::NumpadEnter),
4427-
PROCESSING_KEY_NUMPAD_EQUAL => Ok(KeyCode::NumpadEqual),
4428-
PROCESSING_KEY_SHIFT_LEFT => Ok(KeyCode::ShiftLeft),
4429-
PROCESSING_KEY_CONTROL_LEFT => Ok(KeyCode::ControlLeft),
4430-
PROCESSING_KEY_ALT_LEFT => Ok(KeyCode::AltLeft),
4431-
PROCESSING_KEY_SUPER_LEFT => Ok(KeyCode::SuperLeft),
4432-
PROCESSING_KEY_SHIFT_RIGHT => Ok(KeyCode::ShiftRight),
4433-
PROCESSING_KEY_CONTROL_RIGHT => Ok(KeyCode::ControlRight),
4434-
PROCESSING_KEY_ALT_RIGHT => Ok(KeyCode::AltRight),
4435-
PROCESSING_KEY_SUPER_RIGHT => Ok(KeyCode::SuperRight),
4436-
PROCESSING_KEY_CONTEXT_MENU => Ok(KeyCode::ContextMenu),
4437-
_ => Err(ProcessingError::InvalidArgument(format!(
4438-
"unknown key code: {val}"
4439-
))),
4440-
}
4441-
}
4442-
4443-
fn key_code_to_u32(kc: KeyCode) -> u32 {
4444-
match kc {
4445-
KeyCode::Space => PROCESSING_KEY_SPACE,
4446-
KeyCode::Quote => PROCESSING_KEY_QUOTE,
4447-
KeyCode::Comma => PROCESSING_KEY_COMMA,
4448-
KeyCode::Minus => PROCESSING_KEY_MINUS,
4449-
KeyCode::Period => PROCESSING_KEY_PERIOD,
4450-
KeyCode::Slash => PROCESSING_KEY_SLASH,
4451-
KeyCode::Digit0 => PROCESSING_KEY_0,
4452-
KeyCode::Digit1 => PROCESSING_KEY_1,
4453-
KeyCode::Digit2 => PROCESSING_KEY_2,
4454-
KeyCode::Digit3 => PROCESSING_KEY_3,
4455-
KeyCode::Digit4 => PROCESSING_KEY_4,
4456-
KeyCode::Digit5 => PROCESSING_KEY_5,
4457-
KeyCode::Digit6 => PROCESSING_KEY_6,
4458-
KeyCode::Digit7 => PROCESSING_KEY_7,
4459-
KeyCode::Digit8 => PROCESSING_KEY_8,
4460-
KeyCode::Digit9 => PROCESSING_KEY_9,
4461-
KeyCode::Semicolon => PROCESSING_KEY_SEMICOLON,
4462-
KeyCode::Equal => PROCESSING_KEY_EQUAL,
4463-
KeyCode::KeyA => PROCESSING_KEY_A,
4464-
KeyCode::KeyB => PROCESSING_KEY_B,
4465-
KeyCode::KeyC => PROCESSING_KEY_C,
4466-
KeyCode::KeyD => PROCESSING_KEY_D,
4467-
KeyCode::KeyE => PROCESSING_KEY_E,
4468-
KeyCode::KeyF => PROCESSING_KEY_F,
4469-
KeyCode::KeyG => PROCESSING_KEY_G,
4470-
KeyCode::KeyH => PROCESSING_KEY_H,
4471-
KeyCode::KeyI => PROCESSING_KEY_I,
4472-
KeyCode::KeyJ => PROCESSING_KEY_J,
4473-
KeyCode::KeyK => PROCESSING_KEY_K,
4474-
KeyCode::KeyL => PROCESSING_KEY_L,
4475-
KeyCode::KeyM => PROCESSING_KEY_M,
4476-
KeyCode::KeyN => PROCESSING_KEY_N,
4477-
KeyCode::KeyO => PROCESSING_KEY_O,
4478-
KeyCode::KeyP => PROCESSING_KEY_P,
4479-
KeyCode::KeyQ => PROCESSING_KEY_Q,
4480-
KeyCode::KeyR => PROCESSING_KEY_R,
4481-
KeyCode::KeyS => PROCESSING_KEY_S,
4482-
KeyCode::KeyT => PROCESSING_KEY_T,
4483-
KeyCode::KeyU => PROCESSING_KEY_U,
4484-
KeyCode::KeyV => PROCESSING_KEY_V,
4485-
KeyCode::KeyW => PROCESSING_KEY_W,
4486-
KeyCode::KeyX => PROCESSING_KEY_X,
4487-
KeyCode::KeyY => PROCESSING_KEY_Y,
4488-
KeyCode::KeyZ => PROCESSING_KEY_Z,
4489-
KeyCode::BracketLeft => PROCESSING_KEY_BRACKET_LEFT,
4490-
KeyCode::Backslash => PROCESSING_KEY_BACKSLASH,
4491-
KeyCode::BracketRight => PROCESSING_KEY_BRACKET_RIGHT,
4492-
KeyCode::Backquote => PROCESSING_KEY_BACKQUOTE,
4493-
KeyCode::Escape => PROCESSING_KEY_ESCAPE,
4494-
KeyCode::Enter => PROCESSING_KEY_ENTER,
4495-
KeyCode::Tab => PROCESSING_KEY_TAB,
4496-
KeyCode::Backspace => PROCESSING_KEY_BACKSPACE,
4497-
KeyCode::Insert => PROCESSING_KEY_INSERT,
4498-
KeyCode::Delete => PROCESSING_KEY_DELETE,
4499-
KeyCode::ArrowRight => PROCESSING_KEY_RIGHT,
4500-
KeyCode::ArrowLeft => PROCESSING_KEY_LEFT,
4501-
KeyCode::ArrowDown => PROCESSING_KEY_DOWN,
4502-
KeyCode::ArrowUp => PROCESSING_KEY_UP,
4503-
KeyCode::PageUp => PROCESSING_KEY_PAGE_UP,
4504-
KeyCode::PageDown => PROCESSING_KEY_PAGE_DOWN,
4505-
KeyCode::Home => PROCESSING_KEY_HOME,
4506-
KeyCode::End => PROCESSING_KEY_END,
4507-
KeyCode::CapsLock => PROCESSING_KEY_CAPS_LOCK,
4508-
KeyCode::ScrollLock => PROCESSING_KEY_SCROLL_LOCK,
4509-
KeyCode::NumLock => PROCESSING_KEY_NUM_LOCK,
4510-
KeyCode::PrintScreen => PROCESSING_KEY_PRINT_SCREEN,
4511-
KeyCode::Pause => PROCESSING_KEY_PAUSE,
4512-
KeyCode::F1 => PROCESSING_KEY_F1,
4513-
KeyCode::F2 => PROCESSING_KEY_F2,
4514-
KeyCode::F3 => PROCESSING_KEY_F3,
4515-
KeyCode::F4 => PROCESSING_KEY_F4,
4516-
KeyCode::F5 => PROCESSING_KEY_F5,
4517-
KeyCode::F6 => PROCESSING_KEY_F6,
4518-
KeyCode::F7 => PROCESSING_KEY_F7,
4519-
KeyCode::F8 => PROCESSING_KEY_F8,
4520-
KeyCode::F9 => PROCESSING_KEY_F9,
4521-
KeyCode::F10 => PROCESSING_KEY_F10,
4522-
KeyCode::F11 => PROCESSING_KEY_F11,
4523-
KeyCode::F12 => PROCESSING_KEY_F12,
4524-
KeyCode::Numpad0 => PROCESSING_KEY_NUMPAD_0,
4525-
KeyCode::Numpad1 => PROCESSING_KEY_NUMPAD_1,
4526-
KeyCode::Numpad2 => PROCESSING_KEY_NUMPAD_2,
4527-
KeyCode::Numpad3 => PROCESSING_KEY_NUMPAD_3,
4528-
KeyCode::Numpad4 => PROCESSING_KEY_NUMPAD_4,
4529-
KeyCode::Numpad5 => PROCESSING_KEY_NUMPAD_5,
4530-
KeyCode::Numpad6 => PROCESSING_KEY_NUMPAD_6,
4531-
KeyCode::Numpad7 => PROCESSING_KEY_NUMPAD_7,
4532-
KeyCode::Numpad8 => PROCESSING_KEY_NUMPAD_8,
4533-
KeyCode::Numpad9 => PROCESSING_KEY_NUMPAD_9,
4534-
KeyCode::NumpadDecimal => PROCESSING_KEY_NUMPAD_DECIMAL,
4535-
KeyCode::NumpadDivide => PROCESSING_KEY_NUMPAD_DIVIDE,
4536-
KeyCode::NumpadMultiply => PROCESSING_KEY_NUMPAD_MULTIPLY,
4537-
KeyCode::NumpadSubtract => PROCESSING_KEY_NUMPAD_SUBTRACT,
4538-
KeyCode::NumpadAdd => PROCESSING_KEY_NUMPAD_ADD,
4539-
KeyCode::NumpadEnter => PROCESSING_KEY_NUMPAD_ENTER,
4540-
KeyCode::NumpadEqual => PROCESSING_KEY_NUMPAD_EQUAL,
4541-
KeyCode::ShiftLeft => PROCESSING_KEY_SHIFT_LEFT,
4542-
KeyCode::ControlLeft => PROCESSING_KEY_CONTROL_LEFT,
4543-
KeyCode::AltLeft => PROCESSING_KEY_ALT_LEFT,
4544-
KeyCode::SuperLeft => PROCESSING_KEY_SUPER_LEFT,
4545-
KeyCode::ShiftRight => PROCESSING_KEY_SHIFT_RIGHT,
4546-
KeyCode::ControlRight => PROCESSING_KEY_CONTROL_RIGHT,
4547-
KeyCode::AltRight => PROCESSING_KEY_ALT_RIGHT,
4548-
KeyCode::SuperRight => PROCESSING_KEY_SUPER_RIGHT,
4549-
KeyCode::ContextMenu => PROCESSING_KEY_CONTEXT_MENU,
4550-
_ => 0,
4551-
}
4552-
}

0 commit comments

Comments
 (0)