pub trait GpuFrameRenderer: FrameRenderer<Image = RenderedTexture> {
// Required methods
fn render_frame_yuv420p(
&self,
size: RenderSize,
frame: &FrameDesc<'_>,
frames: &dyn FrameProvider,
encoding: YuvEncoding,
) -> Result<FrameYuv420pRender, RenderError>;
fn render_frame_yuv420p_timed(
&self,
size: RenderSize,
frame: &FrameDesc<'_>,
frames: &dyn FrameProvider,
encoding: YuvEncoding,
timings: &mut FrameSubmitTimings,
) -> Result<FrameYuv420pRender, RenderError>;
}Expand description
GPU frame paths that end on the GPU: an unmapped YUV420 readback or encoder NV12 planes.
Required Methods§
Sourcefn render_frame_yuv420p(
&self,
size: RenderSize,
frame: &FrameDesc<'_>,
frames: &dyn FrameProvider,
encoding: YuvEncoding,
) -> Result<FrameYuv420pRender, RenderError>
fn render_frame_yuv420p( &self, size: RenderSize, frame: &FrameDesc<'_>, frames: &dyn FrameProvider, encoding: YuvEncoding, ) -> Result<FrameYuv420pRender, RenderError>
Renders and converts to YUV420 in one command buffer.
An incomplete source set submits nothing. The output size must be even.
§Errors
Returns RenderError for invalid graph, target, or YUV layout data.
Sourcefn render_frame_yuv420p_timed(
&self,
size: RenderSize,
frame: &FrameDesc<'_>,
frames: &dyn FrameProvider,
encoding: YuvEncoding,
timings: &mut FrameSubmitTimings,
) -> Result<FrameYuv420pRender, RenderError>
fn render_frame_yuv420p_timed( &self, size: RenderSize, frame: &FrameDesc<'_>, frames: &dyn FrameProvider, encoding: YuvEncoding, timings: &mut FrameSubmitTimings, ) -> Result<FrameYuv420pRender, RenderError>
Renders one frame for YUV420 readback and reports where the call went.
Same output as GpuFrameRenderer::render_frame_yuv420p, with stage spans written to
timings.
§Errors
Returns RenderError for invalid graph, target, or YUV layout data.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".