Trait Blend

Source
pub trait Blend: Format {
    // Required methods
    fn over_fallback<B, H>(dst: &mut [Self], src: &[B], clr: Self)
       where B: Format<Chan = H>,
             Self::Chan: From<H>,
             H: Channel + From<Self::Chan>;
    fn over<B, H>(dst: Self, src: B) -> Self
       where B: Format<Chan = H>,
             Self::Chan: From<H>,
             H: Channel + From<Self::Chan>;

    // Provided method
    fn over_slice<B, H>(dst: &mut [Self], src: &[B], clr: Self)
       where B: Format<Chan = H>,
             Self::Chan: From<H>,
             H: Channel + From<Self::Chan> { ... }
}
Expand description

Pixel format which can be blended.

Required Methods§

Source

fn over_fallback<B, H>(dst: &mut [Self], src: &[B], clr: Self)
where B: Format<Chan = H>, Self::Chan: From<H>, H: Channel + From<Self::Chan>,

Blend pixels with over operation (slow fallback).

  • dst Destination pixels.
  • src Source pixels.
  • clr Mask color.
Source

fn over<B, H>(dst: Self, src: B) -> Self
where B: Format<Chan = H>, Self::Chan: From<H>, H: Channel + From<Self::Chan>,

Blend pixel on top of another, using “over”.

Provided Methods§

Source

fn over_slice<B, H>(dst: &mut [Self], src: &[B], clr: Self)
where B: Format<Chan = H>, Self::Chan: From<H>, H: Channel + From<Self::Chan>,

Blend pixels with over operation.

  • dst Destination pixels.
  • src Source pixels.
  • clr Mask color.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<C, A> Blend for Mask<A>
where C: Channel, A: Alpha<Chan = C> + From<C>,

Source§

fn over_fallback<B, H>(dst: &mut [Self], src: &[B], clr: Self)
where B: Format<Chan = H>, C: From<H>, H: Channel + From<C>,

Blend pixels with over operation (slow fallback).

  • dst Destination pixels.
  • src Source pixels.
  • clr Mask color.
Source§

fn over<B, H>(dst: Self, src: B) -> Self
where B: Format<Chan = H>, Self::Chan: From<H>, H: Channel + From<C>,

Blend pixel on top of another, using “over”.

Source§

impl<C, A, M, G> Blend for Gray<C, A, M, G>
where C: Channel, A: Alpha<Chan = C> + From<C>, M: AlphaMode, G: GammaMode,

Source§

fn over_fallback<B, H>(dst: &mut [Self], src: &[B], clr: Self)
where B: Format<Chan = H>, C: From<H>, H: Channel + From<C>,

Blend pixels with over operation (slow fallback).

  • dst Destination pixels.
  • src Source pixels.
  • clr Mask color.
Source§

fn over<B, H>(dst: Self, src: B) -> Self
where B: Format<Chan = H>, Self::Chan: From<H>, H: Channel + From<C>,

Blend pixel on top of another, using “over”.

Source§

impl<C, A, M, G> Blend for Rgb<C, A, M, G>
where C: Channel, A: Alpha<Chan = C> + From<C>, M: AlphaMode, G: GammaMode,

Source§

fn over_fallback<B, H>(dst: &mut [Self], src: &[B], clr: Self)
where B: Format<Chan = H>, C: From<H>, H: Channel + From<C>,

Blend pixels with over operation (slow fallback).

  • dst Destination pixels.
  • src Source pixels.
  • clr Mask color.
Source§

fn over<B, H>(dst: Self, src: B) -> Self
where B: Format<Chan = H>, C: From<H>, H: Channel + From<C>,

Blend pixel on top of another, using “over”.

Implementors§