Struct winit::event_loop::EventLoop

source ·
pub struct EventLoop<T: 'static> {
    pub(crate) event_loop: EventLoop<T>,
    pub(crate) _marker: PhantomData<*mut ()>,
}
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.

Fields§

§event_loop: EventLoop<T>§_marker: PhantomData<*mut ()>

Implementations§

source§

impl EventLoop<()>

source§

impl<T> EventLoop<T>

source

pub fn with_user_event() -> EventLoop<T>

👎Deprecated: Use EventLoopBuilder::<T>::with_user_event().build() instead.
source

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.
source

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>>§

source

pub fn available_monitors(&self) -> impl Iterator<Item = MonitorHandle>

Returns the list of all the monitors available on the system.

source

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.

source

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> Debug for EventLoop<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for EventLoop<()>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T> Deref for EventLoop<T>

§

type Target = EventLoopWindowTarget<T>

The resulting type after dereferencing.
source§

fn deref(&self) -> &EventLoopWindowTarget<T>

Dereferences the value.
source§

impl<T> EventLoopExtRunReturn for EventLoop<T>

§

type UserEvent = T

A type provided by the user that can be passed through Event::UserEvent.
source§

fn run_return<F>(&mut self, event_handler: F) -> i32where F: FnMut(Event<'_, Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>, &mut ControlFlow),

Initializes the winit event loop. Read more
source§

impl<T> HasRawDisplayHandle for EventLoop<T>

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for EventLoop<T>

§

impl<T> !Send for EventLoop<T>

§

impl<T> !Sync for EventLoop<T>

§

impl<T> Unpin for EventLoop<T>where T: Unpin,

§

impl<T> !UnwindSafe for EventLoop<T>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.