pub struct FrameEnded {
pub frame: u64,
pub frame_time_ms: f32,
}Expand description
Emitted at the end of each frame, after all systems have run.
Use this for cleanup, profiling, or operations that should happen after all game logic but before the next frame begins.
§Example
use goud_engine::core::events::FrameEnded;
use goud_engine::core::event::Events;
fn end_frame_profiling(events: &Events<FrameEnded>) {
let mut reader = events.reader();
for event in reader.read() {
// Record frame timing for profiling
println!("Frame {} completed in {:.2}ms", event.frame, event.frame_time_ms);
}
}Fields§
§frame: u64The frame number that just completed.
frame_time_ms: f32Time taken to process this frame, in milliseconds.
Implementations§
Source§impl FrameEnded
impl FrameEnded
Trait Implementations§
Source§impl Clone for FrameEnded
impl Clone for FrameEnded
Source§fn clone(&self) -> FrameEnded
fn clone(&self) -> FrameEnded
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FrameEnded
impl Debug for FrameEnded
Source§impl Default for FrameEnded
impl Default for FrameEnded
Source§impl PartialEq for FrameEnded
impl PartialEq for FrameEnded
impl Copy for FrameEnded
impl StructuralPartialEq for FrameEnded
Auto Trait Implementations§
impl Freeze for FrameEnded
impl RefUnwindSafe for FrameEnded
impl Send for FrameEnded
impl Sync for FrameEnded
impl Unpin for FrameEnded
impl UnsafeUnpin for FrameEnded
impl UnwindSafe for FrameEnded
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().