Struct ConverterRun

Source
pub struct ConverterRun<'data> { /* private fields */ }
Expand description

A planner / builder for converting frame colors.

This does the computation of Converter::run_to_completion step-by-step. You begin by supplying the layouts and can then alter the buffers on which it is run, make choices between alternative conversion routes introspect the plan, before executing it.

Implementations§

Source§

impl<'data> ConverterRun<'data>

Source

pub fn use_input(&mut self, frame_in: &'data Canvas)

Define a canvas of input color data.

This replaces any existing input data.

Note on design: Calling this twice is pointless at the moment. There will be a method added to choose the frames after adding them to the converter. Then the panic will be delayed to runtime with methods of verifying your choice is appropriate to the color of the layouts, such as one plane for rgb, two planes for separate alpha, three planes when yuv420 sub-sampling and so on.

§Panics

The frames must have the layout with which the converter was initialized. This is not guaranteed to panic in future versions!

Source

pub fn use_output(&mut self, frame_out: &'data mut Canvas)

Define an owned output frame to write to.

See Self::use_input for design and details and panics.

Source

pub fn add_plane_in( &mut self, plane: BytePlaneRef<'data>, ) -> ConverterPlaneHandle<'_>

Add a read-only slice plane to the input.

Source

pub fn add_cell_in( &mut self, plane: BytePlaneCells<'data>, ) -> ConverterPlaneHandle<'_>

Add a cell plane to the input.

Note that this plane may overlap be the same as planes added as an output, or overlap. This will fail at runtime when there is no algorithm to map the color data between the two.

Source

pub fn add_atomic_in( &mut self, plane: BytePlaneAtomics<'data>, ) -> ConverterPlaneHandle<'_>

Add an atomic plane to the input.

Source

pub fn add_plane_out( &mut self, plane: BytePlaneMut<'data>, ) -> ConverterPlaneHandle<'_>

Source

pub fn add_cell_out( &mut self, plane: BytePlaneCells<'data>, ) -> ConverterPlaneHandle<'_>

Source

pub fn add_atomic_out( &mut self, plane: BytePlaneAtomics<'data>, ) -> ConverterPlaneHandle<'_>

Source

pub fn run(self) -> Result<(), ConversionError>

Run on the first frames in input and output.

This chooses the image planes based on colors. (With current design rationale this is always a single plane but we’ll stay forward compatible here, I think).

Auto Trait Implementations§

§

impl<'data> Freeze for ConverterRun<'data>

§

impl<'data> !RefUnwindSafe for ConverterRun<'data>

§

impl<'data> !Send for ConverterRun<'data>

§

impl<'data> !Sync for ConverterRun<'data>

§

impl<'data> Unpin for ConverterRun<'data>

§

impl<'data> !UnwindSafe for ConverterRun<'data>

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<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<P, L> PlaneOf<&L> for P
where P: PlaneOf<L>,

Source§

type Plane = <P as PlaneOf<L>>::Plane

Source§

fn get_plane(self, layout: &&L) -> Option<<P as PlaneOf<&L>>::Plane>

Get the layout describing the plane.
Source§

impl<P, L> PlaneOf<&mut L> for P
where P: PlaneOf<L>,

Source§

type Plane = <P as PlaneOf<L>>::Plane

Source§

fn get_plane(self, layout: &&mut L) -> Option<<P as PlaneOf<&mut L>>::Plane>

Get the layout describing the plane.
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.