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§
Sourcetype RenderObjectInstanceJobContextT
type RenderObjectInstanceJobContextT
JobContext for the extract_render_object_instance entry point.
Sourcetype RenderObjectInstancePerViewJobContextT
type RenderObjectInstancePerViewJobContextT
JobContext for the extract_render_object_instance_per_view entry point.
Sourcetype FramePacketDataT: 'static + Sync + Send + FramePacketData
type FramePacketDataT: 'static + Sync + Send + FramePacketData
See definition of FramePacketData.
Required Methods§
fn feature_debug_constants(&self) -> &'static RenderFeatureDebugConstants
fn feature_index(&self) -> RenderFeatureIndex
Provided Methods§
Sourcefn begin_per_frame_extract(
&self,
_context: &ExtractPerFrameContext<'extract, '_, Self>,
)
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.
Sourcefn extract_render_object_instance(
&self,
_job_context: &mut Self::RenderObjectInstanceJobContextT,
_context: &ExtractRenderObjectInstanceContext<'extract, '_, Self>,
)
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.
Sourcefn extract_render_object_instance_per_view(
&self,
_job_context: &mut Self::RenderObjectInstancePerViewJobContextT,
_context: &ExtractRenderObjectInstancePerViewContext<'extract, '_, Self>,
)
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.
Sourcefn end_per_view_extract(
&self,
_context: &ExtractPerViewContext<'extract, '_, Self>,
)
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.
Sourcefn end_per_frame_extract(
&self,
_context: &ExtractPerFrameContext<'extract, '_, Self>,
)
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.
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>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.