[−][src]Struct riddle_time::TimeSystem
The Riddle time system core state.
Manages tracking framerate and timer state.
It is possible to manage the audio system state independantly - the most important
thing to note is that TimeSystem::process_frame
must be called once per "frame".
The default Riddle integration calls that method whenever the
riddle::Event::ProcessFrame
event is fired.
Implementations
impl TimeSystem
[src]
pub fn new() -> TimeSystemHandle
[src]
Create a new time system. The time the system is created is used as the time of the 0th frame.
pub fn process_frame(&self)
[src]
Update the time system state, marking the beginning of a the next frame.
The instant that this method is called is taken as the reference time for the frame that is about to be executed.
Timers will also be triggered during this function call if they are due to trigger.
Do not call this function directly if you are using this through the
riddle
crate.
Example
let frame_1 = time_system.frame_instant(); // A while later let frame_n = time_system.frame_instant(); assert_eq!(true, frame_n - frame_1 > std::time::Duration::from_secs(0));
pub fn fps(&self) -> f32
[src]
Get the current FPS as calculated based on previous frame durations.
pub fn delta_secs(&self) -> f32
[src]
Get the current delta t as calculated based on previous frame durations.
pub fn frame_instant(&self) -> Instant
[src]
Get the reference time for this frame. Captured during TimeSystem::process_frame
.
pub fn register_timer<F>(&self, duration: Duration, callback: F) -> TimerHandle where
F: FnOnce() + Send + 'static,
[src]
F: FnOnce() + Send + 'static,
Register a timer with a callback which will be fired when the time elpases.
The returned handle may be dropped without cancelling the timer.
Example
let val = Arc::new(AtomicBool::new(false)); time_system.register_timer(std::time::Duration::from_millis(200), { let val = val.clone(); move || { val.store(true, Ordering::Relaxed); } }); // A while later assert_eq!(true, val.load(Ordering::Relaxed));
Trait Implementations
impl CloneHandle for TimeSystem
[src]
type Handle = TimeSystemHandle
The type which represents a strong reference, and which may be dereferenced as Self. Read more
type WeakHandle = TimeSystemWeak
The type which represents a weak reference.
fn clone_handle(&self) -> TimeSystemHandle
[src]
fn clone_weak_handle(&self) -> TimeSystemWeak
[src]
Auto Trait Implementations
impl RefUnwindSafe for TimeSystem
impl Send for TimeSystem
impl Sync for TimeSystem
impl Unpin for TimeSystem
impl UnwindSafe for TimeSystem
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,