pub struct StatHud {
pub fps_label: Option<AssetId>,
pub vram_label: Option<AssetId>,
pub ram_label: Option<AssetId>,
pub ev_label: Option<AssetId>,
pub edr_label: Option<AssetId>,
}Expand description
Requests the default on-screen stats HUD. Drives a set of TextLabel chips with live engine stats, refreshed on a fixed interval.
Each label field, when set, receives one chip: fps_label the averaged
frame rate, vram_label the GPU-memory use, ram_label the host process
memory (resident set size, against the memory budget when known), ev_label
the auto-exposure value, and edr_label the HDR headroom multiplier. Chips
whose stat is unavailable stay blank. The frame-rate and GPU-memory chips
are shown or hidden from the in-game video settings (“Display performance
stats”); the host-memory, exposure, and HDR chips show whenever their
reading is available.
The chips are packed into a tight strip anchored at the top-left of the window, left to right in the order fps, vram, ram, ev, edr; a blank chip reserves no width, so hidden readouts leave no gap. Their on-screen position is fixed by the engine rather than the authored coordinates.
Developer-facing readouts (per-pass GPU timings, cursor position, live camera pose) live on the separate DebugHud, toggled with F1.
A world that declares a MainMenu receives a StatHud from the
build when it declares none, since the menu’s performance-stats toggles
drive the chips, and any label field left unset receives a chip at start.
So the example below is only needed to restyle the chips or run a HUD
without a menu. Declare an EngineDefaults with
"hud": false to leave the chips unfilled.
Fields§
§fps_label: Option<AssetId>TextLabel that receives the frame-rate chip text.
vram_label: Option<AssetId>TextLabel that receives the GPU-memory chip text.
ram_label: Option<AssetId>TextLabel that receives the host-memory (RSS) chip text.
ev_label: Option<AssetId>TextLabel that receives the auto-exposure chip text.
edr_label: Option<AssetId>TextLabel that receives the HDR-headroom chip text.
Trait Implementations§
Source§impl Component for StatHud
impl Component for StatHud
Source§fn from_baked(bytes: &[u8]) -> Result<StatHud, CnResult>
fn from_baked(bytes: &[u8]) -> Result<StatHud, CnResult>
Source§fn inject_locator(&mut self, _locator: PayloadLocator)
fn inject_locator(&mut self, _locator: PayloadLocator)
Source§fn inject_name(&mut self, _id: AssetId)
fn inject_name(&mut self, _id: AssetId)
Source§impl ComponentSlot for StatHud
impl ComponentSlot for StatHud
Source§const DISCRIMINANT: u8
const DISCRIMINANT: u8
ComponentId.Source§impl<'de> Deserialize<'de> for StatHud
impl<'de> Deserialize<'de> for StatHud
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<StatHud, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<StatHud, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl RuntimeComponent for StatHud
Source§impl Serialize for StatHud
impl Serialize for StatHud
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for StatHud
impl RefUnwindSafe for StatHud
impl Send for StatHud
impl Sync for StatHud
impl Unpin for StatHud
impl UnsafeUnpin for StatHud
impl UnwindSafe for StatHud
Blanket Implementations§
impl<T> AutoreleaseSafe for Twhere
T: ?Sized,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
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> ⓘ
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