Struct winit::EventsLoop
source · pub struct EventsLoop { /* 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 EventsLoop
can be seen more or less as a “context”. Calling EventsLoop::new()
initializes everything that will be required to create windows. For example on Linux creating
an events loop opens a connection to the X or Wayland server.
To wake up an EventsLoop
from a another thread, see the EventsLoopProxy
docs.
Note that the EventsLoop
cannot be shared accross threads (due to platform-dependant logic
forbiding it), as such it is neither Send
nor Sync
. If you need cross-thread access, the
Window
created from this EventsLoop
can be sent to an other thread, and the
EventsLoopProxy
allows you to wakeup an EventsLoop
from an other thread.
Implementations
sourceimpl EventsLoop
impl EventsLoop
sourcepub fn new() -> EventsLoop
pub fn new() -> EventsLoop
Builds a new events loop.
Usage will result in display backend initialisation, this can be controlled on linux
using an environment variable WINIT_UNIX_BACKEND
. Legal values are x11
and wayland
.
If it is not set, winit will try to connect to a wayland connection, and if it fails will
fallback on x11. If this variable is set with any other value, winit will panic.
sourcepub fn get_available_monitors(&self) -> AvailableMonitorsIter ⓘ
pub fn get_available_monitors(&self) -> AvailableMonitorsIter ⓘ
Returns the list of all the monitors available on the system.
sourcepub fn get_primary_monitor(&self) -> MonitorId
pub fn get_primary_monitor(&self) -> MonitorId
Returns the primary monitor of the system.
sourcepub fn poll_events<F>(&mut self, callback: F)where
F: FnMut(Event),
pub fn poll_events<F>(&mut self, callback: F)where
F: FnMut(Event),
Fetches all the events that are pending, calls the callback function for each of them, and returns.
sourcepub fn run_forever<F>(&mut self, callback: F)where
F: FnMut(Event) -> ControlFlow,
pub fn run_forever<F>(&mut self, callback: F)where
F: FnMut(Event) -> ControlFlow,
Calls callback
every time an event is received. If no event is available, sleeps the
current thread and waits for an event. If the callback returns ControlFlow::Break
then
run_forever
will immediately return.
Danger!
The callback is run after every event, so if its execution time is non-trivial the event queue may not empty at a sufficient rate. Rendering in the callback with vsync enabled will cause significant lag.
sourcepub fn create_proxy(&self) -> EventsLoopProxy
pub fn create_proxy(&self) -> EventsLoopProxy
Creates an EventsLoopProxy
that can be used to wake up the EventsLoop
from another
thread.
Trait Implementations
sourceimpl Debug for EventsLoop
impl Debug for EventsLoop
sourceimpl EventsLoopExt for EventsLoop
impl EventsLoopExt for EventsLoop
sourcefn new_x11() -> Result<Self, XNotSupported>
fn new_x11() -> Result<Self, XNotSupported>
EventsLoop
that is forced to use X11.sourcefn new_wayland() -> Self
fn new_wayland() -> Self
EventsLoop
that is forced to use Wayland.sourcefn is_wayland(&self) -> bool
fn is_wayland(&self) -> bool
EventsLoop
uses Wayland.Auto Trait Implementations
impl !RefUnwindSafe for EventsLoop
impl !Send for EventsLoop
impl !Sync for EventsLoop
impl Unpin for EventsLoop
impl !UnwindSafe for EventsLoop
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> SetParameter for T
impl<T> SetParameter for T
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Resultwhere
T: Parameter<Self>,
fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Resultwhere
T: Parameter<Self>,
value
as a parameter of self
.