Struct winit::event_loop::EventLoop
source · pub struct EventLoop<T: 'static> { /* private fields */ }
Expand description
Provides a way to retrieve events from the system and from the windows that were registered to the events loop.
An EventLoop
can be seen more or less as a “context”. Calling EventLoop::new
initializes everything that will be required to create windows. For example on Linux creating
an event loop opens a connection to the X or Wayland server.
To wake up an EventLoop
from a another thread, see the EventLoopProxy
docs.
Note that this cannot be shared across threads (due to platform-dependant logic
forbidding it), as such it is neither Send
nor Sync
. If you need cross-thread access, the
Window
created from this can be sent to an other thread, and the
EventLoopProxy
allows you to wake up an EventLoop
from another thread.
Implementations§
source§impl EventLoop<()>
impl EventLoop<()>
sourcepub fn new() -> EventLoop<()>
pub fn new() -> EventLoop<()>
Alias for EventLoopBuilder::new().build()
.
source§impl<T> EventLoop<T>
impl<T> EventLoop<T>
pub fn with_user_event() -> EventLoop<T>
EventLoopBuilder::<T>::with_user_event().build()
instead.sourcepub fn run<F>(self, event_handler: F) -> !where
F: 'static + FnMut(Event<'_, T>, &EventLoopWindowTarget<T>, &mut ControlFlow),
pub fn run<F>(self, event_handler: F) -> !where F: 'static + FnMut(Event<'_, T>, &EventLoopWindowTarget<T>, &mut ControlFlow),
Hijacks the calling thread and initializes the winit event loop with the provided
closure. Since the closure is 'static
, it must be a move
closure if it needs to
access any data from the calling context.
See the ControlFlow
docs for information on how changes to &mut ControlFlow
impact the
event loop’s behavior.
Any values not passed to this function will not be dropped.
Platform-specific
- X11 / Wayland: The program terminates with exit code 1 if the display server disconnects.
sourcepub fn create_proxy(&self) -> EventLoopProxy<T>
pub fn create_proxy(&self) -> EventLoopProxy<T>
Creates an EventLoopProxy
that can be used to dispatch user events to the main event loop.
Methods from Deref<Target = EventLoopWindowTarget<T>>§
sourcepub fn available_monitors(&self) -> impl Iterator<Item = MonitorHandle>
pub fn available_monitors(&self) -> impl Iterator<Item = MonitorHandle>
Returns the list of all the monitors available on the system.
sourcepub fn primary_monitor(&self) -> Option<MonitorHandle>
pub fn primary_monitor(&self) -> Option<MonitorHandle>
Returns the primary monitor of the system.
Returns None
if it can’t identify any monitor as a primary one.
Platform-specific
Wayland: Always returns None
.
sourcepub fn set_device_event_filter(&self, _filter: DeviceEventFilter)
pub fn set_device_event_filter(&self, _filter: DeviceEventFilter)
Change DeviceEvent
filter mode.
Since the DeviceEvent
capture can lead to high CPU usage for unfocused windows, winit
will ignore them by default for unfocused windows on Linux/BSD. This method allows changing
this filter at runtime to explicitly capture them again.
Platform-specific
- Wayland / macOS / iOS / Android / Web / Orbital: Unsupported.
Trait Implementations§
source§impl<T> Deref for EventLoop<T>
impl<T> Deref for EventLoop<T>
§type Target = EventLoopWindowTarget<T>
type Target = EventLoopWindowTarget<T>
source§fn deref(&self) -> &EventLoopWindowTarget<T>
fn deref(&self) -> &EventLoopWindowTarget<T>
source§impl<T> EventLoopExtRunReturn for EventLoop<T>
Available on windows_platform
or macos_platform
or android_platform
or x11_platform
or wayland_platform
or orbital_platform
only.
impl<T> EventLoopExtRunReturn for EventLoop<T>
windows_platform
or macos_platform
or android_platform
or x11_platform
or wayland_platform
or orbital_platform
only.§type UserEvent = T
type UserEvent = T
Event::UserEvent
.source§fn run_return<F>(&mut self, event_handler: F) -> i32where
F: FnMut(Event<'_, Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>, &mut ControlFlow),
fn run_return<F>(&mut self, event_handler: F) -> i32where F: FnMut(Event<'_, Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>, &mut ControlFlow),
winit
event loop. Read moresource§impl<T> HasRawDisplayHandle for EventLoop<T>
impl<T> HasRawDisplayHandle for EventLoop<T>
source§fn raw_display_handle(&self) -> RawDisplayHandle
fn raw_display_handle(&self) -> RawDisplayHandle
Returns a raw_window_handle::RawDisplayHandle
for the event loop.