game: remove unused enum InputEvent, remove some warnings
This commit is contained in:
parent
d6d6b2df72
commit
798719a7a2
|
@ -1,140 +0,0 @@
|
||||||
use winit::{dpi::PhysicalPosition, event::{AxisId, DeviceId, ElementState, KeyEvent, MouseButton, MouseScrollDelta, Touch, TouchPhase, WindowEvent}};
|
|
||||||
|
|
||||||
/// Wrapper around events from `winit::WindowEvent` that are specific to input related events.
|
|
||||||
///
|
|
||||||
/// The `winit::WindowEvent` enum has many values that are related to inputs.
|
|
||||||
/// Ex:
|
|
||||||
/// * winit::WindowEvent::KeyboardInput
|
|
||||||
/// * winit::WindowEvent::CursorMoved
|
|
||||||
/// * winit::WindowEvent::CursorEntered
|
|
||||||
/// * winit::WindowEvent::MouseWheel
|
|
||||||
/// * winit::WindowEvent::CursorLeft
|
|
||||||
/// * winit::WindowEvent::MouseInput
|
|
||||||
/// etc.
|
|
||||||
///
|
|
||||||
/// Its easier for these to all be in a single `InputEvent` type enum to check if any input was received.
|
|
||||||
/// The comments for all the methods were taken from `winit::WindowEvent`
|
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
|
||||||
pub enum InputEvent {
|
|
||||||
/// An event from the keyboard has been received.
|
|
||||||
KeyboardInput {
|
|
||||||
device_id: DeviceId,
|
|
||||||
event: KeyEvent,
|
|
||||||
|
|
||||||
/// If true, the event was generated synthetically by winit in one of the following circumstances:
|
|
||||||
/// Synthetic key press events are generated for all keys pressed when a window gains focus.
|
|
||||||
/// Likewise, synthetic key release events are generated for all keys pressed when a window goes out of focus.
|
|
||||||
/// Currently, this is only functional on X11 and Windows
|
|
||||||
is_synthetic: bool,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// The cursor has moved on the window.
|
|
||||||
CursorMoved {
|
|
||||||
device_id: DeviceId,
|
|
||||||
position: PhysicalPosition<f64>,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// The cursor has entered the window.
|
|
||||||
CursorEntered {
|
|
||||||
device_id: DeviceId,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// The cursor has left the window.
|
|
||||||
CursorLeft {
|
|
||||||
device_id: DeviceId,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// A mouse wheel movement or touchpad scroll occurred.
|
|
||||||
MouseWheel {
|
|
||||||
device_id: DeviceId,
|
|
||||||
delta: MouseScrollDelta,
|
|
||||||
phase: TouchPhase,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// An mouse button press has been received.
|
|
||||||
MouseInput {
|
|
||||||
device_id: DeviceId,
|
|
||||||
state: ElementState,
|
|
||||||
button: MouseButton,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Touchpad pressure event.
|
|
||||||
///
|
|
||||||
/// At the moment, only supported on Apple forcetouch-capable macbooks.
|
|
||||||
/// The parameters are: pressure level (value between 0 and 1 representing how hard the touchpad
|
|
||||||
/// is being pressed) and stage (integer representing the click level).
|
|
||||||
TouchpadPressure {
|
|
||||||
device_id: DeviceId,
|
|
||||||
pressure: f32,
|
|
||||||
stage: i64,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Motion on some analog axis. May report data redundant to other, more specific events.
|
|
||||||
AxisMotion {
|
|
||||||
device_id: DeviceId,
|
|
||||||
axis: AxisId,
|
|
||||||
value: f64,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Touch event has been received
|
|
||||||
///
|
|
||||||
/// ## Platform-specific
|
|
||||||
/// - **Web**: Doesn’t take into account CSS border, padding, or transform.
|
|
||||||
/// - **macOS:** Unsupported.
|
|
||||||
Touch(Touch),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl InputEvent {
|
|
||||||
pub fn from_window_event(value: &WindowEvent) -> Option<Self> {
|
|
||||||
match value {
|
|
||||||
WindowEvent::KeyboardInput { device_id, event, is_synthetic } =>
|
|
||||||
Some(InputEvent::KeyboardInput {
|
|
||||||
device_id: *device_id,
|
|
||||||
event: event.clone(),
|
|
||||||
is_synthetic: *is_synthetic
|
|
||||||
}),
|
|
||||||
#[allow(deprecated, reason="Compatibility")]
|
|
||||||
WindowEvent::CursorMoved { device_id, position, } =>
|
|
||||||
Some(InputEvent::CursorMoved {
|
|
||||||
device_id: *device_id,
|
|
||||||
position: *position,
|
|
||||||
}),
|
|
||||||
WindowEvent::CursorEntered { device_id } =>
|
|
||||||
Some(InputEvent::CursorEntered {
|
|
||||||
device_id: *device_id
|
|
||||||
}),
|
|
||||||
WindowEvent::CursorLeft { device_id } =>
|
|
||||||
Some(InputEvent::CursorLeft {
|
|
||||||
device_id: *device_id
|
|
||||||
}),
|
|
||||||
#[allow(deprecated, reason="Compatibility")]
|
|
||||||
WindowEvent::MouseWheel { device_id, delta, phase } =>
|
|
||||||
Some(InputEvent::MouseWheel {
|
|
||||||
device_id: *device_id,
|
|
||||||
delta: *delta,
|
|
||||||
phase: *phase,
|
|
||||||
}),
|
|
||||||
#[allow(deprecated, reason="Compatibility")]
|
|
||||||
WindowEvent::MouseInput { device_id, state, button } =>
|
|
||||||
Some(InputEvent::MouseInput {
|
|
||||||
device_id: *device_id,
|
|
||||||
state: *state,
|
|
||||||
button: *button,
|
|
||||||
}),
|
|
||||||
WindowEvent::TouchpadPressure { device_id, pressure, stage } =>
|
|
||||||
Some(InputEvent::TouchpadPressure {
|
|
||||||
device_id: *device_id,
|
|
||||||
pressure: *pressure,
|
|
||||||
stage: *stage
|
|
||||||
}),
|
|
||||||
WindowEvent::AxisMotion { device_id, axis, value } =>
|
|
||||||
Some(InputEvent::AxisMotion {
|
|
||||||
device_id: *device_id,
|
|
||||||
axis: *axis,
|
|
||||||
value: *value
|
|
||||||
}),
|
|
||||||
WindowEvent::Touch(t) => Some(InputEvent::Touch(*t)),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +1,13 @@
|
||||||
pub mod system;
|
mod system;
|
||||||
pub use system::*;
|
pub use system::*;
|
||||||
|
|
||||||
pub mod input_event;
|
mod events;
|
||||||
pub use input_event::*;
|
|
||||||
|
|
||||||
pub mod events;
|
|
||||||
pub use events::*;
|
pub use events::*;
|
||||||
|
|
||||||
pub mod buttons;
|
mod buttons;
|
||||||
pub use buttons::*;
|
pub use buttons::*;
|
||||||
|
|
||||||
pub mod action;
|
mod action;
|
||||||
pub use action::*;
|
pub use action::*;
|
||||||
|
|
||||||
pub type KeyCode = winit::keyboard::KeyCode;
|
pub type KeyCode = winit::keyboard::KeyCode;
|
||||||
|
@ -122,7 +119,7 @@ pub fn keycode_from_str(s: &str) -> Option<KeyCode> {
|
||||||
"numpad_star" => Some(KeyCode::NumpadStar),
|
"numpad_star" => Some(KeyCode::NumpadStar),
|
||||||
"quote" => Some(KeyCode::Quote),
|
"quote" => Some(KeyCode::Quote),
|
||||||
"launch_app1" => Some(KeyCode::LaunchApp1),
|
"launch_app1" => Some(KeyCode::LaunchApp1),
|
||||||
"launch_app1" => Some(KeyCode::LaunchApp2),
|
"launch_app2" => Some(KeyCode::LaunchApp2),
|
||||||
"backslash" => Some(KeyCode::Backslash),
|
"backslash" => Some(KeyCode::Backslash),
|
||||||
"caps_lock" => Some(KeyCode::CapsLock),
|
"caps_lock" => Some(KeyCode::CapsLock),
|
||||||
"comma" => Some(KeyCode::Comma),
|
"comma" => Some(KeyCode::Comma),
|
||||||
|
|
|
@ -6,7 +6,7 @@ use winit::{event::{MouseScrollDelta, WindowEvent}, keyboard::PhysicalKey};
|
||||||
|
|
||||||
use crate::{game::GameStages, plugin::Plugin, winit::DeviceEventPair, EventReader, EventWriter};
|
use crate::{game::GameStages, plugin::Plugin, winit::DeviceEventPair, EventReader, EventWriter};
|
||||||
|
|
||||||
use super::{events::*, InputButtons, InputEvent};
|
use super::{events::*, InputButtons};
|
||||||
|
|
||||||
fn write_scroll_delta(mouse_scroll_ev: &mut EventWriter<MouseScroll>, delta: &MouseScrollDelta) {
|
fn write_scroll_delta(mouse_scroll_ev: &mut EventWriter<MouseScroll>, delta: &MouseScrollDelta) {
|
||||||
let event = match delta {
|
let event = match delta {
|
||||||
|
@ -119,7 +119,6 @@ impl Plugin for InputPlugin {
|
||||||
app.add_resource(InputButtons::<MouseButton>::default());
|
app.add_resource(InputButtons::<MouseButton>::default());
|
||||||
app.add_resource(Touches::default());
|
app.add_resource(Touches::default());
|
||||||
|
|
||||||
app.register_event::<InputEvent>();
|
|
||||||
app.register_event::<MouseScroll>();
|
app.register_event::<MouseScroll>();
|
||||||
app.register_event::<MouseButton>();
|
app.register_event::<MouseButton>();
|
||||||
app.register_event::<MouseMotion>();
|
app.register_event::<MouseMotion>();
|
||||||
|
|
|
@ -42,7 +42,7 @@ impl<'a> RenderGraphContext<'a> {
|
||||||
pub fn begin_render_pass(
|
pub fn begin_render_pass(
|
||||||
&'a mut self,
|
&'a mut self,
|
||||||
desc: wgpu::RenderPassDescriptor<'a>,
|
desc: wgpu::RenderPassDescriptor<'a>,
|
||||||
) -> wgpu::RenderPass {
|
) -> wgpu::RenderPass<'a> {
|
||||||
self.encoder
|
self.encoder
|
||||||
.as_mut()
|
.as_mut()
|
||||||
.expect(
|
.expect(
|
||||||
|
|
Loading…
Reference in New Issue