pub trait ExtractJobEntryPoints<'extract>: Sync + Send + Sized {
    type RenderObjectInstanceJobContextT;
    type RenderObjectInstancePerViewJobContextT;
    type FramePacketDataT: 'static + Sync + Send + FramePacketData;

    // Required methods
    fn feature_debug_constants(&self) -> &'static RenderFeatureDebugConstants;
    fn feature_index(&self) -> RenderFeatureIndex;

    // Provided methods
    fn begin_per_frame_extract(
        &self,
        _context: &ExtractPerFrameContext<'extract, '_, Self>
    ) { ... }
    fn extract_render_object_instance(
        &self,
        _job_context: &mut Self::RenderObjectInstanceJobContextT,
        _context: &ExtractRenderObjectInstanceContext<'extract, '_, Self>
    ) { ... }
    fn extract_render_object_instance_per_view(
        &self,
        _job_context: &mut Self::RenderObjectInstancePerViewJobContextT,
        _context: &ExtractRenderObjectInstancePerViewContext<'extract, '_, Self>
    ) { ... }
    fn end_per_view_extract(
        &self,
        _context: &ExtractPerViewContext<'extract, '_, Self>
    ) { ... }
    fn end_per_frame_extract(
        &self,
        _context: &ExtractPerFrameContext<'extract, '_, Self>
    ) { ... }
    fn new_render_object_instance_job_context(
        &'extract self
    ) -> Option<Self::RenderObjectInstanceJobContextT> { ... }
    fn new_render_object_instance_per_view_job_context(
        &'extract self
    ) -> Option<Self::RenderObjectInstancePerViewJobContextT> { ... }
}
Expand description

ExtractJobEntryPoints provides a generic set of callbacks for a RenderFeature compatible with the ExtractJob struct. This simplifies the work of implementing the RenderFeatureExtractJob trait.

Required Associated Types§

source

type RenderObjectInstanceJobContextT

JobContext for the extract_render_object_instance entry point.

source

type RenderObjectInstancePerViewJobContextT

JobContext for the extract_render_object_instance_per_view entry point.

source

type FramePacketDataT: 'static + Sync + Send + FramePacketData

See definition of FramePacketData.

Required Methods§

Provided Methods§

source

fn begin_per_frame_extract( &self, _context: &ExtractPerFrameContext<'extract, '_, Self> )

Called once at the start of the extract step when any RenderView in the frame is relevant to this RenderFeature.

source

fn extract_render_object_instance( &self, _job_context: &mut Self::RenderObjectInstanceJobContextT, _context: &ExtractRenderObjectInstanceContext<'extract, '_, Self> )

Called once for each instance of an Entity and RenderObject in the frame matching this RenderFeature.

source

fn extract_render_object_instance_per_view( &self, _job_context: &mut Self::RenderObjectInstancePerViewJobContextT, _context: &ExtractRenderObjectInstancePerViewContext<'extract, '_, Self> )

Called once for each instance of an Entity and RenderObject in each RenderView relevant to this RenderFeature.

source

fn end_per_view_extract( &self, _context: &ExtractPerViewContext<'extract, '_, Self> )

Called once for each relevant RenderView. This function is only run after all instances of extract_render_object_instance_per_view have finished for that RenderView.

source

fn end_per_frame_extract( &self, _context: &ExtractPerFrameContext<'extract, '_, Self> )

Called once at the end of the extract step when any RenderView in the frame is relevant to this RenderFeature.

source

fn new_render_object_instance_job_context( &'extract self ) -> Option<Self::RenderObjectInstanceJobContextT>

source

fn new_render_object_instance_per_view_job_context( &'extract self ) -> Option<Self::RenderObjectInstancePerViewJobContextT>

Object Safety§

This trait is not object safe.

Implementors§