Trait bevy::render::extract_component::ExtractComponent

pub trait ExtractComponent: Component {
    type QueryData: ReadOnlyQueryData;
    type QueryFilter: QueryFilter;
    type Out: Bundle;

    // Required method
    fn extract_component(
        item: <Self::QueryData as WorldQuery>::Item<'_>
    ) -> Option<Self::Out>;
}
Expand description

Describes how a component gets extracted for rendering.

Therefore the component is transferred from the “app world” into the “render world” in the ExtractSchedule step.

Required Associated Types§

type QueryData: ReadOnlyQueryData

ECS ReadOnlyQueryData to fetch the components to extract.

type QueryFilter: QueryFilter

Filters the entities with additional constraints.

type Out: Bundle

The output from extraction.

Returning None based on the queried item can allow early optimization, for example if there is an enabled: bool field on Self, or by only accepting values within certain thresholds.

The output may be different from the queried component. This can be useful for example if only a subset of the fields are useful in the render world.

Out has a Bundle trait bound instead of a Component trait bound in order to allow use cases such as tuples of components as output.

Required Methods§

fn extract_component( item: <Self::QueryData as WorldQuery>::Item<'_> ) -> Option<Self::Out>

Defines how the component is transferred into the “render world”.

Object Safety§

This trait is not object safe.

Implementors§

§

impl ExtractComponent for DebandDither

§

impl ExtractComponent for Tonemapping

§

impl ExtractComponent for ShadowFilteringMethod

§

impl ExtractComponent for AutoExposureSettings

§

impl ExtractComponent for BloomSettings

§

type QueryData = (&'static BloomSettings, &'static Camera)

§

type QueryFilter = ()

§

type Out = (BloomSettings, BloomUniforms)

§

impl ExtractComponent for ContrastAdaptiveSharpeningSettings

§

impl ExtractComponent for Fxaa
where Fxaa: Clone,

§

type QueryData = &'static Fxaa

§

type QueryFilter = With<Camera>

§

type Out = Fxaa

§

impl ExtractComponent for MotionBlur

§

impl ExtractComponent for Camera2d
where Camera2d: Clone,

§

impl ExtractComponent for Camera3d
where Camera3d: Clone,

§

impl ExtractComponent for Skybox

§

type QueryData = (&'static Skybox, Option<&'static Exposure>)

§

type QueryFilter = ()

§

type Out = (Skybox, SkyboxUniforms)

§

impl ExtractComponent for PbrDeferredLightingDepthId

§

impl ExtractComponent for FogSettings

§

impl ExtractComponent for ScreenSpaceAmbientOcclusionSettings

§

impl ExtractComponent for SpriteSource

§

impl ExtractComponent for CameraMainTextureUsages

§

impl<T> ExtractComponent for Handle<T>
where T: Asset,

§

type QueryData = &'static Handle<T>

§

type QueryFilter = ()

§

type Out = Handle<T>