From 593cc7096c666d04e16a060fdc39b3cd06a60770 Mon Sep 17 00:00:00 2001 From: CakesStuff Date: Sat, 15 Feb 2025 23:37:14 +0100 Subject: [PATCH 1/3] add conversion functions so that events can be used with Canvas::set_logical_size --- src/sdl3/event.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/sdl3/event.rs b/src/sdl3/event.rs index 29bec7c8..43132832 100644 --- a/src/sdl3/event.rs +++ b/src/sdl3/event.rs @@ -2574,6 +2574,24 @@ impl Event { pub fn is_unknown(&self) -> bool { matches!(self, Self::Unknown { .. }) } + + // Returns `None` if the event cannot be converted to its raw form (should not happen). + pub fn get_converted_coords(&self, canvas: crate::render::Canvas) -> Option { + let mut raw = self.to_ll()?; + unsafe { sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); } + Some(Self::from_ll(raw)) + } + + // Returns `true` on succes and false if the event cannot be converted to its raw form (should not happen) + pub fn convert_coords(&mut self, canvas: crate::render::Canvas) -> bool { + if let Some(mut raw) = self.to_ll() { + unsafe { sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); } + *self = Self::from_ll(raw); + true + } else { + false + } + } } unsafe fn poll_event() -> Option { From dc9ab8243cf218cabf5775f2d847799eb838b730 Mon Sep 17 00:00:00 2001 From: CakesStuff Date: Sat, 15 Feb 2025 23:59:39 +0100 Subject: [PATCH 2/3] cargo fmt --- src/sdl3/event.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/sdl3/event.rs b/src/sdl3/event.rs index 43132832..95c359f4 100644 --- a/src/sdl3/event.rs +++ b/src/sdl3/event.rs @@ -2576,16 +2576,26 @@ impl Event { } // Returns `None` if the event cannot be converted to its raw form (should not happen). - pub fn get_converted_coords(&self, canvas: crate::render::Canvas) -> Option { + pub fn get_converted_coords( + &self, + canvas: crate::render::Canvas, + ) -> Option { let mut raw = self.to_ll()?; - unsafe { sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); } + unsafe { + sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); + } Some(Self::from_ll(raw)) } - // Returns `true` on succes and false if the event cannot be converted to its raw form (should not happen) - pub fn convert_coords(&mut self, canvas: crate::render::Canvas) -> bool { + // Returns `true` on success and false if the event cannot be converted to its raw form (should not happen) + pub fn convert_coords( + &mut self, + canvas: crate::render::Canvas, + ) -> bool { if let Some(mut raw) = self.to_ll() { - unsafe { sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); } + unsafe { + sys::render::SDL_ConvertEventToRenderCoordinates(canvas.raw(), &mut raw); + } *self = Self::from_ll(raw); true } else { From 439e89a42ef5dc83611c2721b95c52b26c2bac8e Mon Sep 17 00:00:00 2001 From: CakesStuff Date: Fri, 21 Feb 2025 09:55:05 +0100 Subject: [PATCH 3/3] take canvas by reference --- src/sdl3/event.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sdl3/event.rs b/src/sdl3/event.rs index 95c359f4..1b7132a9 100644 --- a/src/sdl3/event.rs +++ b/src/sdl3/event.rs @@ -2578,7 +2578,7 @@ impl Event { // Returns `None` if the event cannot be converted to its raw form (should not happen). pub fn get_converted_coords( &self, - canvas: crate::render::Canvas, + canvas: &crate::render::Canvas, ) -> Option { let mut raw = self.to_ll()?; unsafe { @@ -2590,7 +2590,7 @@ impl Event { // Returns `true` on success and false if the event cannot be converted to its raw form (should not happen) pub fn convert_coords( &mut self, - canvas: crate::render::Canvas, + canvas: &crate::render::Canvas, ) -> bool { if let Some(mut raw) = self.to_ll() { unsafe {