Skip to main content

FrameTimer

Struct FrameTimer 

Source
pub struct FrameTimer { /* private fields */ }
Expand description

Frame time tracker for computing frame statistics.

Implementations§

Source§

impl FrameTimer

Source

pub const fn new() -> Self

Creates a new frame timer with default settings.

Source

pub const fn with_fixed_dt(fixed_dt: f64) -> Self

Creates a frame timer with custom fixed timestep.

Source

pub fn set_max_dt(&mut self, max_dt: f64)

Sets the maximum allowed delta time.

Source

pub fn set_fixed_dt(&mut self, fixed_dt: f64)

Sets the fixed timestep interval.

Source

pub fn update(&mut self, timestamp_ms: f64) -> f64

Updates the timer with a new frame timestamp.

§Arguments
  • timestamp_ms - Current timestamp from requestAnimationFrame in milliseconds
§Returns

The clamped delta time in seconds

Source

pub fn consume_fixed_step(&mut self) -> Option<f64>

Consumes accumulated time in fixed timestep chunks.

Call this in a loop to run physics updates at fixed intervals:

while let Some(fixed_dt) = timer.consume_fixed_step() {
    physics.step(fixed_dt);
}
§Returns

Some(fixed_dt) if enough time has accumulated, None otherwise

Source

pub fn interpolation_alpha(&self) -> f64

Returns the interpolation alpha for rendering between physics steps.

This value (0.0 to 1.0) indicates how far between the last and next physics step we are, useful for interpolating visual positions.

Source

pub const fn total_time(&self) -> f64

Returns the total elapsed time since the timer was created.

Source

pub const fn frame_count(&self) -> u64

Returns the total number of frames processed.

Source

pub fn average_fps(&self) -> f64

Returns the average frames per second.

Source

pub const fn accumulator(&self) -> f64

Returns the remaining accumulator time.

Source

pub const fn fixed_dt(&self) -> f64

Returns the fixed timestep interval.

Source

pub fn reset(&mut self)

Resets the timer to its initial state.

Trait Implementations§

Source§

impl Clone for FrameTimer

Source§

fn clone(&self) -> FrameTimer

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FrameTimer

Source§

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

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

impl Default for FrameTimer

Source§

fn default() -> Self

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

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V