Trait bevy::render::render_asset::RenderAsset
pub trait RenderAsset: Asset {
type ExtractedAsset: Send + Sync + 'static;
type PreparedAsset: Send + Sync + 'static;
type Param: SystemParam;
// Required methods
fn extract_asset(&self) -> Self::ExtractedAsset;
fn prepare_asset(
extracted_asset: Self::ExtractedAsset,
param: &mut <Self::Param as SystemParam>::Item<'_, '_>
) -> Result<Self::PreparedAsset, PrepareAssetError<Self::ExtractedAsset>>;
}
Expand description
Describes how an asset gets extracted and prepared for rendering.
In the ExtractSchedule
step the asset is transferred
from the “main world” into the “render world”.
Therefore it is converted into a RenderAsset::ExtractedAsset
, which may be the same type
as the render asset itself.
After that in the RenderSet::PrepareAssets
step the extracted asset
is transformed into its GPU-representation of type RenderAsset::PreparedAsset
.
Required Associated Types§
type ExtractedAsset: Send + Sync + 'static
type ExtractedAsset: Send + Sync + 'static
The representation of the asset in the “render world”.
type PreparedAsset: Send + Sync + 'static
type PreparedAsset: Send + Sync + 'static
The GPU-representation of the asset.
type Param: SystemParam
type Param: SystemParam
Specifies all ECS data required by RenderAsset::prepare_asset
.
For convenience use the lifetimeless
SystemParam
.
Required Methods§
fn extract_asset(&self) -> Self::ExtractedAsset
fn extract_asset(&self) -> Self::ExtractedAsset
Converts the asset into a RenderAsset::ExtractedAsset
.
fn prepare_asset(
extracted_asset: Self::ExtractedAsset,
param: &mut <Self::Param as SystemParam>::Item<'_, '_>
) -> Result<Self::PreparedAsset, PrepareAssetError<Self::ExtractedAsset>>
fn prepare_asset( extracted_asset: Self::ExtractedAsset, param: &mut <Self::Param as SystemParam>::Item<'_, '_> ) -> Result<Self::PreparedAsset, PrepareAssetError<Self::ExtractedAsset>>
Prepares the extracted asset
for the GPU by transforming it into
a RenderAsset::PreparedAsset
. Therefore ECS data may be accessed via the param
.