Skip to main content

StreamingConfig

Struct StreamingConfig 

Source
pub struct StreamingConfig {
    pub texture_budget: u32,
    pub texture_cap: u32,
    pub mesh_budget: u32,
    pub mesh_cap: u32,
    pub texture_budget_mb: u32,
    pub mesh_budget_mb: u32,
}
Expand description

Enables and tunes asset streaming.

When no StreamingConfig is declared, streaming is off and every texture and mesh is loaded up front. When one is present, textures and static mesh geometry load in gradually after startup: each frame the nearest not-yet- loaded items are brought in, up to a per-frame budget, prioritised by camera distance. Once more than the cap would be loaded at once, the farthest are dropped to make room.

Texture streaming covers the colour and normal-map textures (each capped independently via texture_budget / texture_cap). Mesh streaming covers static geometry; the skybox, rooms, and moving props always stay loaded.

Fields§

§texture_budget: u32

Maximum number of textures whose load is started per frame, applied independently to the colour and normal-map pools. A low value spreads the cost over more frames.

§texture_cap: u32

Maximum number of textures kept loaded at once, applied independently to the colour and normal-map pools. When exceeded, the farthest-from-camera textures are dropped.

§mesh_budget: u32

Maximum number of mesh regions whose load is started per frame. A low value spreads the cost over more frames.

§mesh_cap: u32

Maximum number of meshes kept loaded at once. When exceeded, the farthest-from-camera meshes are dropped.

§texture_budget_mb: u32

Resident-texture memory budget in mebibytes, spanning the colour and normal-map pools together. Once resident textures exceed it the farthest-from-camera ones are dropped, so nearer textures always win the space. 0 (the default) derives the budget from the GPU’s reported memory instead. texture_cap still applies as a hard item-count ceiling.

§mesh_budget_mb: u32

Resident-mesh memory budget in mebibytes. Once resident meshes exceed it the farthest-from-camera ones are dropped. 0 (the default) derives the budget from the GPU’s reported memory instead. mesh_cap still applies as a hard item-count ceiling.

Implementations§

Source§

impl StreamingConfig

Source

pub fn budget(&self) -> usize

Per-frame texture load budget as a usize, floored at 1 so a stray 0 cannot wedge streaming permanently.

Source

pub fn cap(&self) -> usize

Resident-texture cap as a usize, floored at 1.

Source

pub fn mesh_budget(&self) -> usize

Per-frame mesh load budget as a usize, floored at 1.

Source

pub fn mesh_cap(&self) -> usize

Resident-mesh cap as a usize, floored at 1.

Trait Implementations§

Source§

impl Clone for StreamingConfig

Source§

fn clone(&self) -> StreamingConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Component for StreamingConfig

Source§

const NAME: &'static str = "StreamingConfig"

The registry name a world authors this component under.
Source§

fn from_baked(bytes: &[u8]) -> Result<StreamingConfig, CnResult>

Reconstruct this component from a blob record, whose bytes are the serialized runtime component (cook already ran the asset -> component translation). The default rejects: runtime-only components are never stored in a blob, so only loadable types provide an implementation.
Source§

fn inject_locator(&mut self, _locator: PayloadLocator)

Called after construction to inject the payload locator from the blob def. Only meaningful for components with a compiled payload. The default implementation does nothing (correct for most components).
Source§

fn inject_name(&mut self, _id: AssetId)

Called after construction to inject the asset’s identity from the blob def. Only meaningful for components that look themselves up by id at runtime. The default implementation does nothing.
Source§

impl ComponentSlot for StreamingConfig

Source§

const DISCRIMINANT: u8

The component type’s stable id, used as its ComponentId.
Source§

fn slot(s: &ComponentStorage) -> &Column<StreamingConfig>

Borrow this type’s column out of the storage.
Source§

fn slot_mut(s: &mut ComponentStorage) -> &mut Column<StreamingConfig>

Mutably borrow this type’s column out of the storage.
Source§

impl Debug for StreamingConfig

Source§

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

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

impl Default for StreamingConfig

Source§

fn default() -> StreamingConfig

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

impl<'de> Deserialize<'de> for StreamingConfig

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<StreamingConfig, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<StreamingConfig> for ComponentAsset

Source§

fn from(c: StreamingConfig) -> ComponentAsset

Converts to this type from the input type.
Source§

impl RuntimeComponent for StreamingConfig

Source§

impl Serialize for StreamingConfig

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

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

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more