[][src]Struct glutin::EventsLoop

pub struct EventsLoop { /* fields omitted */ }

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.


impl EventsLoop[src]

pub fn new() -> EventsLoop[src]

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.

Important traits for AvailableMonitorsIter
pub fn get_available_monitors(&self) -> AvailableMonitorsIter[src]

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

pub fn get_primary_monitor(&self) -> MonitorId[src]

Returns the primary monitor of the system.

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.

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.


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.

pub fn create_proxy(&self) -> EventsLoopProxy[src]

Creates an EventsLoopProxy that can be used to wake up the EventsLoop from another thread.

Trait Implementations

impl EventsLoopExt for EventsLoop[src]

impl Debug for EventsLoop[src]

Auto Trait Implementations

impl !Send for EventsLoop

impl !Sync for EventsLoop

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized

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

impl<T> BorrowMut for T where
    T: ?Sized

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

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

The type returned in the event of a conversion error.

impl<T> SetParameter for T

fn set<T>(&mut self, value: T) -> <T as Parameter<Self>>::Result where
    T: Parameter<Self>, 

Sets value as a parameter of self.

impl<T> Erased for T