pub struct HeadlessRenderer { /* private fields */ }Expand description
A reusable offscreen engine renderer: one adapter, one device, one
frust_engine::EngineRenderer and one size-matched
frust_gpu::HeadlessTarget, across any number of renders.
See the module docs for what makes it a harness rather than a convenience wrapper.
Implementations§
Source§impl HeadlessRenderer
impl HeadlessRenderer
Sourcepub async fn new(options: HeadlessOptions) -> Result<Self>
pub async fn new(options: HeadlessOptions) -> Result<Self>
Resolves an adapter, verifies it against the expectations, checks it
can drive the engine, and creates the device and engine renderer every
later render reuses.
§Errors
Fails when no adapter is available, when the resolved adapter does not
meet an expect_adapter/expect_backend expectation (before any
rendering), when the engine’s capability gate refuses the adapter, or
when device/renderer creation fails.
Sourcepub fn meta(&self) -> &HeadlessMeta
pub fn meta(&self) -> &HeadlessMeta
The GPU this renderer resolved — the provenance to record with any image it produces.
Sourcepub async fn render(
&mut self,
scene: &Scene,
spec: &HeadlessSpec,
) -> Result<HeadlessImage>
pub async fn render( &mut self, scene: &Scene, spec: &HeadlessSpec, ) -> Result<HeadlessImage>
Renders scene offscreen and reads the pixels back, unpadded.
§Errors
Fails on a zero-sized spec, on a refused frame, and on any wgpu validation error captured during the render — a harness that renders through a validation error is producing pixels nobody should trust.