Skip to main content

TileBatchDecodeSubmit

Trait TileBatchDecodeSubmit 

Source
pub trait TileBatchDecodeSubmit: ImageCodec {
    type Context: CodecContext;
    type Session: Default + Send;
    type DeviceSurface: DeviceSurface;
    type SubmittedSurface: DeviceSubmission<Output = Self::DeviceSurface, Error = Self::Error>;

    // Required methods
    fn submit_tile_to_device<'a>(
        ctx: &mut DecoderContext<Self::Context>,
        session: &mut Self::Session,
        pool: &mut Self::Pool,
        input: &'a [u8],
        fmt: PixelFormat,
        backend: BackendRequest,
    ) -> Result<Self::SubmittedSurface, Self::Error>;
    fn submit_tile_region_to_device<'a>(
        ctx: &mut DecoderContext<Self::Context>,
        session: &mut Self::Session,
        pool: &mut Self::Pool,
        input: &'a [u8],
        fmt: PixelFormat,
        roi: Rect,
        backend: BackendRequest,
    ) -> Result<Self::SubmittedSurface, Self::Error>;
    fn submit_tile_scaled_to_device<'a>(
        ctx: &mut DecoderContext<Self::Context>,
        session: &mut Self::Session,
        pool: &mut Self::Pool,
        input: &'a [u8],
        fmt: PixelFormat,
        scale: Downscale,
        backend: BackendRequest,
    ) -> Result<Self::SubmittedSurface, Self::Error>;
    fn submit_tile_region_scaled_to_device<'a>(
        ctx: &mut DecoderContext<Self::Context>,
        session: &mut Self::Session,
        pool: &mut Self::Pool,
        input: &'a [u8],
        fmt: PixelFormat,
        roi: Rect,
        scale: Downscale,
        backend: BackendRequest,
    ) -> Result<Self::SubmittedSurface, Self::Error>;

    // Provided method
    fn submit_tile_request_to_device<'a>(
        ctx: &mut DecoderContext<Self::Context>,
        session: &mut Self::Session,
        pool: &mut Self::Pool,
        input: &'a [u8],
        fmt: PixelFormat,
        backend: BackendRequest,
        request: DecodeRequest,
    ) -> Result<Self::SubmittedSurface, Self::Error> { ... }
}
Expand description

Tile-batch helpers that queue device submissions.

Required Associated Types§

Source

type Context: CodecContext

Codec-specific context cached across tiles.

Source

type Session: Default + Send

Mutable session state shared across submissions.

Source

type DeviceSurface: DeviceSurface

Device surface returned by completed submissions.

Source

type SubmittedSurface: DeviceSubmission<Output = Self::DeviceSurface, Error = Self::Error>

Submission handle type.

Required Methods§

Source

fn submit_tile_to_device<'a>( ctx: &mut DecoderContext<Self::Context>, session: &mut Self::Session, pool: &mut Self::Pool, input: &'a [u8], fmt: PixelFormat, backend: BackendRequest, ) -> Result<Self::SubmittedSurface, Self::Error>

Submit one full tile to the requested backend.

Source

fn submit_tile_region_to_device<'a>( ctx: &mut DecoderContext<Self::Context>, session: &mut Self::Session, pool: &mut Self::Pool, input: &'a [u8], fmt: PixelFormat, roi: Rect, backend: BackendRequest, ) -> Result<Self::SubmittedSurface, Self::Error>

Submit one tile region to the requested backend.

Source

fn submit_tile_scaled_to_device<'a>( ctx: &mut DecoderContext<Self::Context>, session: &mut Self::Session, pool: &mut Self::Pool, input: &'a [u8], fmt: PixelFormat, scale: Downscale, backend: BackendRequest, ) -> Result<Self::SubmittedSurface, Self::Error>

Submit one tile at reduced resolution to the requested backend.

Source

fn submit_tile_region_scaled_to_device<'a>( ctx: &mut DecoderContext<Self::Context>, session: &mut Self::Session, pool: &mut Self::Pool, input: &'a [u8], fmt: PixelFormat, roi: Rect, scale: Downscale, backend: BackendRequest, ) -> Result<Self::SubmittedSurface, Self::Error>

Submit one tile region at reduced resolution to the requested backend.

Provided Methods§

Source

fn submit_tile_request_to_device<'a>( ctx: &mut DecoderContext<Self::Context>, session: &mut Self::Session, pool: &mut Self::Pool, input: &'a [u8], fmt: PixelFormat, backend: BackendRequest, request: DecodeRequest, ) -> Result<Self::SubmittedSurface, Self::Error>

Submit one tile for a normalized full/ROI/scaled request.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§