Skip to content

Commit 97a8126

Browse files
authored
Merge pull request #23 from ProjectLighthouseCAU/movement
Implement movement/pointer lock mouse APIs
2 parents bde4c8f + 8b46e91 commit 97a8126

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

lighthouse-protocol/src/input/input_event.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ impl InputEvent {
5353
mod tests {
5454
use serde_json::json;
5555

56-
use crate::{EventSource, GamepadAxis2DEvent, GamepadAxisEvent, GamepadButtonEvent, GamepadControlEvent, GamepadEvent, InputEvent, KeyEvent, KeyModifiers, MouseButton, MouseEvent, Pos, Vec2};
56+
use crate::{Delta, EventSource, GamepadAxis2DEvent, GamepadAxisEvent, GamepadButtonEvent, GamepadControlEvent, GamepadEvent, InputEvent, KeyEvent, KeyModifiers, MouseButton, MouseEvent, Pos, Vec2};
5757

5858
#[test]
5959
fn key_event() {
@@ -88,15 +88,24 @@ mod tests {
8888
"type": "mouse",
8989
"source": 1,
9090
"button": "left",
91+
"down": true,
92+
"pointerLocked": false,
9193
"pos": {
9294
"x": 2,
9395
"y": 4,
9496
},
97+
"movement": {
98+
"x": 6,
99+
"y": -3,
100+
},
95101
})).unwrap(),
96102
InputEvent::Mouse(MouseEvent {
97103
source: EventSource::Int(1),
98104
button: MouseButton::Left,
105+
down: true,
106+
pointer_locked: false,
99107
pos: Pos::new(2.0, 4.0),
108+
movement: Delta::new(6.0, -3.0),
100109
})
101110
);
102111
}
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use serde::{Deserialize, Serialize};
22

3-
use crate::Pos;
3+
use crate::{Delta, Pos};
44

55
use super::{EventSource, MouseButton};
66

@@ -10,8 +10,14 @@ use super::{EventSource, MouseButton};
1010
pub struct MouseEvent {
1111
/// The client identifier.
1212
pub source: EventSource,
13+
/// Whether the button was pressed.
14+
pub down: bool,
15+
/// Whether the mouse pointer was locked (e.g. to the frontend's canvas)
16+
pub pointer_locked: bool,
1317
/// The mouse button.
1418
pub button: MouseButton,
15-
/// The mouse position.
19+
/// The mouse position on the lighthouse grid.
1620
pub pos: Pos<f64>,
21+
/// The mouse movement on the lighthouse grid.
22+
pub movement: Delta<f64>,
1723
}

0 commit comments

Comments
 (0)