Skip to main content

HeadlessRenderer

Struct HeadlessRenderer 

Source
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

Source

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.

Source

pub fn meta(&self) -> &HeadlessMeta

The GPU this renderer resolved — the provenance to record with any image it produces.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

Source§

fn simd_from(_simd: S, value: T) -> T

Source§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

Source§

fn simd_into(self, simd: S) -> T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,