Rename run_ondemand to run_on_demand
This commit is contained in:
parent
c7cf0cfd83
commit
ee0db52ac4
12 changed files with 25 additions and 24 deletions
|
|
@ -8,6 +8,7 @@ And please only add new entries to the top of this list, right below the `# Unre
|
||||||
|
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
- Renamed `EventLoopExtRunOnDemand` / `run_ondemand` to `EventLoopExtRunOnDemand` / `run_on_demand`.
|
||||||
- Make iOS `MonitorHandle` and `VideoMode` usable from other threads.
|
- Make iOS `MonitorHandle` and `VideoMode` usable from other threads.
|
||||||
- On Web, `ControlFlow::WaitUntil` now uses the Prioritized Task Scheduling API. `setTimeout()`, with a trick to circumvent throttling to 4ms, is used as a fallback.
|
- On Web, `ControlFlow::WaitUntil` now uses the Prioritized Task Scheduling API. `setTimeout()`, with a trick to circumvent throttling to 4ms, is used as a fallback.
|
||||||
- On Web, never return a `MonitorHandle`.
|
- On Web, never return a `MonitorHandle`.
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ fn main() -> Result<(), impl std::error::Error> {
|
||||||
error::EventLoopError,
|
error::EventLoopError,
|
||||||
event::{Event, WindowEvent},
|
event::{Event, WindowEvent},
|
||||||
event_loop::EventLoop,
|
event_loop::EventLoop,
|
||||||
platform::run_ondemand::EventLoopExtRunOnDemand,
|
platform::run_on_demand::EventLoopExtRunOnDemand,
|
||||||
window::{Window, WindowBuilder, WindowId},
|
window::{Window, WindowBuilder, WindowId},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -30,7 +30,7 @@ fn main() -> Result<(), impl std::error::Error> {
|
||||||
fn run_app(event_loop: &mut EventLoop<()>, idx: usize) -> Result<(), EventLoopError> {
|
fn run_app(event_loop: &mut EventLoop<()>, idx: usize) -> Result<(), EventLoopError> {
|
||||||
let mut app = App::default();
|
let mut app = App::default();
|
||||||
|
|
||||||
event_loop.run_ondemand(move |event, elwt| {
|
event_loop.run_on_demand(move |event, elwt| {
|
||||||
println!("Run {idx}: {:?}", event);
|
println!("Run {idx}: {:?}", event);
|
||||||
|
|
||||||
if let Some(window) = &app.window {
|
if let Some(window) = &app.window {
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
//!
|
//!
|
||||||
//! And the following platform-specific modules:
|
//! And the following platform-specific modules:
|
||||||
//!
|
//!
|
||||||
//! - `run_ondemand` (available on `windows`, `unix`, `macos`, `android`)
|
//! - `run_on_demand` (available on `windows`, `unix`, `macos`, `android`)
|
||||||
//! - `pump_events` (available on `windows`, `unix`, `macos`, `android`)
|
//! - `pump_events` (available on `windows`, `unix`, `macos`, `android`)
|
||||||
//!
|
//!
|
||||||
//! However only the module corresponding to the platform you're compiling to will be available.
|
//! However only the module corresponding to the platform you're compiling to will be available.
|
||||||
|
|
@ -42,7 +42,7 @@ pub mod x11;
|
||||||
x11_platform,
|
x11_platform,
|
||||||
wayland_platform
|
wayland_platform
|
||||||
))]
|
))]
|
||||||
pub mod run_ondemand;
|
pub mod run_on_demand;
|
||||||
|
|
||||||
#[cfg(any(
|
#[cfg(any(
|
||||||
windows_platform,
|
windows_platform,
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ pub trait EventLoopExtRunOnDemand {
|
||||||
/// to while maintaining the full state of your application. (If you need something like this
|
/// to while maintaining the full state of your application. (If you need something like this
|
||||||
/// you can look at the [`EventLoopExtPumpEvents::pump_events()`] API)
|
/// you can look at the [`EventLoopExtPumpEvents::pump_events()`] API)
|
||||||
///
|
///
|
||||||
/// Each time `run_ondemand` is called the `event_handler` can expect to receive a
|
/// Each time `run_on_demand` is called the `event_handler` can expect to receive a
|
||||||
/// `NewEvents(Init)` and `Resumed` event (even on platforms that have no suspend/resume
|
/// `NewEvents(Init)` and `Resumed` event (even on platforms that have no suspend/resume
|
||||||
/// lifecycle) - which can be used to consistently initialize application state.
|
/// lifecycle) - which can be used to consistently initialize application state.
|
||||||
///
|
///
|
||||||
|
|
@ -59,7 +59,7 @@ pub trait EventLoopExtRunOnDemand {
|
||||||
///
|
///
|
||||||
/// [`exit()`]: EventLoopWindowTarget::exit
|
/// [`exit()`]: EventLoopWindowTarget::exit
|
||||||
/// [`set_control_flow()`]: EventLoopWindowTarget::set_control_flow
|
/// [`set_control_flow()`]: EventLoopWindowTarget::set_control_flow
|
||||||
fn run_ondemand<F>(&mut self, event_handler: F) -> Result<(), EventLoopError>
|
fn run_on_demand<F>(&mut self, event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>);
|
F: FnMut(Event<Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>);
|
||||||
}
|
}
|
||||||
|
|
@ -67,10 +67,10 @@ pub trait EventLoopExtRunOnDemand {
|
||||||
impl<T> EventLoopExtRunOnDemand for EventLoop<T> {
|
impl<T> EventLoopExtRunOnDemand for EventLoop<T> {
|
||||||
type UserEvent = T;
|
type UserEvent = T;
|
||||||
|
|
||||||
fn run_ondemand<F>(&mut self, event_handler: F) -> Result<(), EventLoopError>
|
fn run_on_demand<F>(&mut self, event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>),
|
F: FnMut(Event<Self::UserEvent>, &EventLoopWindowTarget<Self::UserEvent>),
|
||||||
{
|
{
|
||||||
self.event_loop.run_ondemand(event_handler)
|
self.event_loop.run_on_demand(event_handler)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -488,10 +488,10 @@ impl<T: 'static> EventLoop<T> {
|
||||||
where
|
where
|
||||||
F: FnMut(event::Event<T>, &event_loop::EventLoopWindowTarget<T>),
|
F: FnMut(event::Event<T>, &event_loop::EventLoopWindowTarget<T>),
|
||||||
{
|
{
|
||||||
self.run_ondemand(event_handler)
|
self.run_on_demand(event_handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_ondemand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(event::Event<T>, &event_loop::EventLoopWindowTarget<T>),
|
F: FnMut(event::Event<T>, &event_loop::EventLoopWindowTarget<T>),
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -774,14 +774,14 @@ impl<T: 'static> EventLoop<T> {
|
||||||
where
|
where
|
||||||
F: FnMut(crate::event::Event<T>, &RootELW<T>),
|
F: FnMut(crate::event::Event<T>, &RootELW<T>),
|
||||||
{
|
{
|
||||||
self.run_ondemand(callback)
|
self.run_on_demand(callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_ondemand<F>(&mut self, callback: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, callback: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(crate::event::Event<T>, &RootELW<T>),
|
F: FnMut(crate::event::Event<T>, &RootELW<T>),
|
||||||
{
|
{
|
||||||
x11_or_wayland!(match self; EventLoop(evlp) => evlp.run_ondemand(callback))
|
x11_or_wayland!(match self; EventLoop(evlp) => evlp.run_on_demand(callback))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn pump_events<F>(&mut self, timeout: Option<Duration>, callback: F) -> PumpStatus
|
pub fn pump_events<F>(&mut self, timeout: Option<Duration>, callback: F) -> PumpStatus
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ type WaylandDispatcher = calloop::Dispatcher<'static, WaylandSource<WinitState>,
|
||||||
|
|
||||||
/// The Wayland event loop.
|
/// The Wayland event loop.
|
||||||
pub struct EventLoop<T: 'static> {
|
pub struct EventLoop<T: 'static> {
|
||||||
/// Has `run` or `run_ondemand` been called or a call to `pump_events` that starts the loop
|
/// Has `run` or `run_on_demand` been called or a call to `pump_events` that starts the loop
|
||||||
loop_running: bool,
|
loop_running: bool,
|
||||||
|
|
||||||
buffer_sink: EventSink,
|
buffer_sink: EventSink,
|
||||||
|
|
@ -189,7 +189,7 @@ impl<T: 'static> EventLoop<T> {
|
||||||
Ok(event_loop)
|
Ok(event_loop)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_ondemand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootEventLoopWindowTarget<T>),
|
F: FnMut(Event<T>, &RootEventLoopWindowTarget<T>),
|
||||||
{
|
{
|
||||||
|
|
@ -212,7 +212,7 @@ impl<T: 'static> EventLoop<T> {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Applications aren't allowed to carry windows between separate
|
// Applications aren't allowed to carry windows between separate
|
||||||
// `run_ondemand` calls but if they have only just dropped their
|
// `run_on_demand` calls but if they have only just dropped their
|
||||||
// windows we need to make sure those last requests are sent to the
|
// windows we need to make sure those last requests are sent to the
|
||||||
// compositor.
|
// compositor.
|
||||||
let _ = self.roundtrip().map_err(EventLoopError::Os);
|
let _ = self.roundtrip().map_err(EventLoopError::Os);
|
||||||
|
|
|
||||||
|
|
@ -398,7 +398,7 @@ impl<T: 'static> EventLoop<T> {
|
||||||
&self.target
|
&self.target
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_ondemand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootELW<T>),
|
F: FnMut(Event<T>, &RootELW<T>),
|
||||||
{
|
{
|
||||||
|
|
@ -421,7 +421,7 @@ impl<T: 'static> EventLoop<T> {
|
||||||
};
|
};
|
||||||
|
|
||||||
// Applications aren't allowed to carry windows between separate
|
// Applications aren't allowed to carry windows between separate
|
||||||
// `run_ondemand` calls but if they have only just dropped their
|
// `run_on_demand` calls but if they have only just dropped their
|
||||||
// windows we need to make sure those last requests are sent to the
|
// windows we need to make sure those last requests are sent to the
|
||||||
// X Server.
|
// X Server.
|
||||||
let wt = get_xtarget(&self.target);
|
let wt = get_xtarget(&self.target);
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,7 @@ impl AppState {
|
||||||
/// and can lead to undefined behaviour if the callback is not cleared before the end of
|
/// and can lead to undefined behaviour if the callback is not cleared before the end of
|
||||||
/// its real lifetime.
|
/// its real lifetime.
|
||||||
///
|
///
|
||||||
/// All public APIs that take an event callback (`run`, `run_ondemand`,
|
/// All public APIs that take an event callback (`run`, `run_on_demand`,
|
||||||
/// `pump_events`) _must_ pair a call to `set_callback` with
|
/// `pump_events`) _must_ pair a call to `set_callback` with
|
||||||
/// a call to `clear_callback` before returning to avoid undefined behaviour.
|
/// a call to `clear_callback` before returning to avoid undefined behaviour.
|
||||||
pub unsafe fn set_callback<T>(
|
pub unsafe fn set_callback<T>(
|
||||||
|
|
|
||||||
|
|
@ -231,14 +231,14 @@ impl<T> EventLoop<T> {
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootWindowTarget<T>),
|
F: FnMut(Event<T>, &RootWindowTarget<T>),
|
||||||
{
|
{
|
||||||
self.run_ondemand(callback)
|
self.run_on_demand(callback)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NB: we don't base this on `pump_events` because for `MacOs` we can't support
|
// NB: we don't base this on `pump_events` because for `MacOs` we can't support
|
||||||
// `pump_events` elegantly (we just ask to run the loop for a "short" amount of
|
// `pump_events` elegantly (we just ask to run the loop for a "short" amount of
|
||||||
// time and so a layered implementation would end up using a lot of CPU due to
|
// time and so a layered implementation would end up using a lot of CPU due to
|
||||||
// redundant wake ups.
|
// redundant wake ups.
|
||||||
pub fn run_ondemand<F>(&mut self, callback: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, callback: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootWindowTarget<T>),
|
F: FnMut(Event<T>, &RootWindowTarget<T>),
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -252,10 +252,10 @@ impl<T: 'static> EventLoop<T> {
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootELW<T>),
|
F: FnMut(Event<T>, &RootELW<T>),
|
||||||
{
|
{
|
||||||
self.run_ondemand(event_handler)
|
self.run_on_demand(event_handler)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run_ondemand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
pub fn run_on_demand<F>(&mut self, mut event_handler: F) -> Result<(), EventLoopError>
|
||||||
where
|
where
|
||||||
F: FnMut(Event<T>, &RootELW<T>),
|
F: FnMut(Event<T>, &RootELW<T>),
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ impl<T> EventLoopRunner<T> {
|
||||||
/// outlive the EventLoopRunner) and can lead to undefined behaviour if
|
/// outlive the EventLoopRunner) and can lead to undefined behaviour if
|
||||||
/// the handler is not cleared before the end of real lifetime.
|
/// the handler is not cleared before the end of real lifetime.
|
||||||
///
|
///
|
||||||
/// All public APIs that take an event handler (`run`, `run_ondemand`,
|
/// All public APIs that take an event handler (`run`, `run_on_demand`,
|
||||||
/// `pump_events`) _must_ pair a call to `set_event_handler` with
|
/// `pump_events`) _must_ pair a call to `set_event_handler` with
|
||||||
/// a call to `clear_event_handler` before returning to avoid
|
/// a call to `clear_event_handler` before returning to avoid
|
||||||
/// undefined behaviour.
|
/// undefined behaviour.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue