aboutsummaryrefslogtreecommitdiff
path: root/adapters/fparkan-platform-winit/src/lib.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-06-23 21:32:50 +0300
committerValentin Popov <valentin@popov.link>2026-06-23 21:32:50 +0300
commit9cc24e715db81edbe21c0d04aadd00f11dddecb8 (patch)
tree08a1262dea86bcd7ec58c6494cedd001c45a78fe /adapters/fparkan-platform-winit/src/lib.rs
parentf8e447ffee746cfe6580cc0e78a8a225aa39b546 (diff)
downloadfparkan-9cc24e715db81edbe21c0d04aadd00f11dddecb8.tar.xz
fparkan-9cc24e715db81edbe21c0d04aadd00f11dddecb8.zip
fix: close stage 0-2 synthetic gates
Diffstat (limited to 'adapters/fparkan-platform-winit/src/lib.rs')
-rw-r--r--adapters/fparkan-platform-winit/src/lib.rs62
1 files changed, 46 insertions, 16 deletions
diff --git a/adapters/fparkan-platform-winit/src/lib.rs b/adapters/fparkan-platform-winit/src/lib.rs
index ec30908..496d955 100644
--- a/adapters/fparkan-platform-winit/src/lib.rs
+++ b/adapters/fparkan-platform-winit/src/lib.rs
@@ -1,15 +1,34 @@
#![forbid(unsafe_code)]
+#![cfg_attr(
+ test,
+ allow(
+ clippy::cast_possible_truncation,
+ clippy::cast_possible_wrap,
+ clippy::cast_precision_loss,
+ clippy::expect_used,
+ clippy::float_cmp,
+ clippy::identity_op,
+ clippy::too_many_lines,
+ clippy::uninlined_format_args,
+ clippy::map_unwrap_or,
+ clippy::needless_raw_string_hashes,
+ clippy::semicolon_if_nothing_returned,
+ clippy::type_complexity,
+ clippy::panic,
+ clippy::unwrap_used
+ )
+)]
//! Minimal `winit`-backed platform adapter shim.
use fparkan_platform::{
- EventSource, MonotonicClock, MonotonicInstant, PlatformEvent, PlatformError, PhysicalSize,
+ EventSource, MonotonicClock, MonotonicInstant, PhysicalSize, PlatformError, PlatformEvent,
RenderRequest, WindowHandle, WindowPort,
};
-use winit::event::{MouseButton, WindowEvent};
-use winit::event_loop::Event;
use std::collections::VecDeque;
use std::sync::atomic::{AtomicU64, Ordering};
use std::time::{SystemTime, UNIX_EPOCH};
+use winit::event::{Event, MouseButton, WindowEvent};
+use winit::platform::scancode::PhysicalKeyExtScancode;
use winit::window::Window;
static NEXT_WINDOW_HANDLE_ID: AtomicU64 = AtomicU64::new(1);
@@ -52,7 +71,7 @@ impl WinitEventSource {
}
/// Pushes a mapped native window event.
- pub fn push_window_event(&mut self, event: &WindowEvent<'_>) {
+ pub fn push_window_event(&mut self, event: &WindowEvent) {
match event {
WindowEvent::KeyboardInput { event, .. } => {
self.queue.push_back(PlatformEvent::KeyboardInput {
@@ -81,14 +100,13 @@ impl WinitEventSource {
});
}
WindowEvent::Focused(focused) => {
- self.queue.push_back(PlatformEvent::FocusChanged { focused: *focused });
- }
- WindowEvent::ScaleFactorChanged {
- scale_factor,
- ..
- } => {
self.queue
- .push_back(PlatformEvent::DpiChanged { scale: *scale_factor });
+ .push_back(PlatformEvent::FocusChanged { focused: *focused });
+ }
+ WindowEvent::ScaleFactorChanged { scale_factor, .. } => {
+ self.queue.push_back(PlatformEvent::DpiChanged {
+ scale: *scale_factor,
+ });
}
WindowEvent::CloseRequested => {
self.queue.push_back(PlatformEvent::QuitRequested);
@@ -98,7 +116,7 @@ impl WinitEventSource {
}
/// Pushes events from an event loop event.
- pub fn push_event<T>(&mut self, event: &Event<'_, T>) {
+ pub fn push_event<T>(&mut self, event: &Event<T>) {
if let Event::WindowEvent { event, .. } = event {
self.push_window_event(event);
}
@@ -112,7 +130,7 @@ fn mouse_button_code(button: MouseButton) -> u16 {
MouseButton::Middle => 2,
MouseButton::Back => 3,
MouseButton::Forward => 4,
- MouseButton::Other(index) => 100 + u16::try_from(index).unwrap_or(0),
+ MouseButton::Other(index) => 100 + index,
}
}
@@ -219,7 +237,10 @@ mod tests {
source.push(PlatformEvent::QuitRequested);
let mut events = Vec::new();
source.poll(&mut events)?;
- assert_eq!(events, vec![PlatformEvent::Resumed, PlatformEvent::QuitRequested]);
+ assert_eq!(
+ events,
+ vec![PlatformEvent::Resumed, PlatformEvent::QuitRequested]
+ );
Ok(())
}
@@ -227,8 +248,17 @@ mod tests {
fn window_port_reports_default_request_profile() {
let window = WinitWindow::synthetic(640, 360);
let request = WinitWindow::default_render_request();
- assert_eq!(request.presentation, fparkan_platform::PresentationMode::Fifo);
- assert_eq!(window.drawable_size(), PhysicalSize { width: 640, height: 360 });
+ assert_eq!(
+ request.presentation,
+ fparkan_platform::PresentationMode::Fifo
+ );
+ assert_eq!(
+ window.drawable_size(),
+ PhysicalSize {
+ width: 640,
+ height: 360
+ }
+ );
}
#[test]