Trait bevy_render::render_asset::RenderAsset
source · pub trait RenderAsset: Send + Sync + 'static + Sized {
type SourceAsset: Asset + Clone;
type Param: SystemParam;
// Required method
fn prepare_asset(
source_asset: Self::SourceAsset,
param: &mut SystemParamItem<'_, '_, Self::Param>
) -> Result<Self, PrepareAssetError<Self::SourceAsset>>;
// Provided methods
fn asset_usage(_source_asset: &Self::SourceAsset) -> RenderAssetUsages { ... }
fn byte_len(source_asset: &Self::SourceAsset) -> Option<usize> { ... }
}
Expand description
Describes how an asset gets extracted and prepared for rendering.
In the ExtractSchedule
step the RenderAsset::SourceAsset
is transferred
from the “main world” into the “render world”.
After that in the RenderSet::PrepareAssets
step the extracted asset
is transformed into its GPU-representation of type RenderAsset
.
Required Associated Types§
sourcetype SourceAsset: Asset + Clone
type SourceAsset: Asset + Clone
The representation of the asset in the “main world”.
sourcetype Param: SystemParam
type Param: SystemParam
Specifies all ECS data required by RenderAsset::prepare_asset
.
For convenience use the lifetimeless
SystemParam
.
Required Methods§
sourcefn prepare_asset(
source_asset: Self::SourceAsset,
param: &mut SystemParamItem<'_, '_, Self::Param>
) -> Result<Self, PrepareAssetError<Self::SourceAsset>>
fn prepare_asset( source_asset: Self::SourceAsset, param: &mut SystemParamItem<'_, '_, Self::Param> ) -> Result<Self, PrepareAssetError<Self::SourceAsset>>
Prepares the RenderAsset::SourceAsset
for the GPU by transforming it into a RenderAsset
.
ECS data may be accessed via param
.
Provided Methods§
sourcefn asset_usage(_source_asset: &Self::SourceAsset) -> RenderAssetUsages
fn asset_usage(_source_asset: &Self::SourceAsset) -> RenderAssetUsages
Whether or not to unload the asset after extracting it to the render world.
sourcefn byte_len(source_asset: &Self::SourceAsset) -> Option<usize>
fn byte_len(source_asset: &Self::SourceAsset) -> Option<usize>
Size of the data the asset will upload to the gpu. Specifying a return value
will allow the asset to be throttled via RenderAssetBytesPerFrame
.