Struct SampleParts

Source
pub struct SampleParts { /* private fields */ }
Expand description

Describes which values are present in a texel.

This is some set of channels that describe the color point precisely, given a color space. Depending on the chosen color there may be multiple ways in which case this names which of the canonical encodings to use. For example, CIELAB may be represented as Lab (Lightness, red/green, blue/yellow) or LCh (Lightness, Chroma, Hue; the polar cooordinate form of the previous).

FIXME(color): describe YUV, ASTC and BC block formats? Other? We surely can handle planar data properly?

Implementations§

Source§

impl SampleParts

Source

pub const A: SampleParts

A pure alpha part.

Source

pub const R: SampleParts

A pure red part.

Source

pub const G: SampleParts

Source

pub const B: SampleParts

Source

pub const Luma: SampleParts

Source

pub const LumaA: SampleParts

Source

pub const Rgb: SampleParts

Source

pub const RgbA: SampleParts

Source

pub const ARgb: SampleParts

Source

pub const Bgr: SampleParts

Source

pub const BgrA: SampleParts

Source

pub const ABgr: SampleParts

Source

pub const Yuv: SampleParts

Source

pub const YuvA: SampleParts

Source

pub const Lab: SampleParts

Source

pub const LabA: SampleParts

Source

pub const Lch: SampleParts

Source

pub const LchA: SampleParts

Source§

impl SampleParts

Source

pub fn new( parts: [Option<ColorChannel>; 4], model: ColorChannelModel, ) -> Option<Self>

Create from up to four color channels.

This is suitable for describing the channels of a single pixel, and relating it to the bit parts in the corresponding texel.

The order of parts will be remembered. All color channels must belong to a common color representation.

Source

pub fn with_channel(&self, ch: ColorChannel) -> Option<Self>

Extract a single channel.

The channel is extract as if part of the ColorChannelModel used in the construction of these sample parts.

Source

pub fn contains(&self, ch: ColorChannel) -> bool

Test if these parts contain the provided channel.

Source

pub fn color_channels(&self) -> [Option<ColorChannel>; 4]

Get an array of up to four color channel present.

Source

pub fn with_yuv_422( parts: [Option<ColorChannel>; 3], model: ColorChannelModel, ) -> Option<Self>

Create parts that describe 4:2:2 subsampled color channels.

These parts represent a 1x2 block, with 4 channels total.

Source

pub fn with_yuv_411( parts: [Option<ColorChannel>; 3], model: ColorChannelModel, ) -> Option<Self>

Create parts that describe 4:1:1 subsampled color channels.

These parts represent a 1x4 block, with 6 channels total.

Source

pub fn num_components(self) -> u8

Source

pub fn has_alpha(self) -> bool

Trait Implementations§

Source§

impl Clone for SampleParts

Source§

fn clone(&self) -> SampleParts

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SampleParts

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for SampleParts

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for SampleParts

Source§

fn eq(&self, other: &SampleParts) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SampleParts

Source§

impl Eq for SampleParts

Source§

impl StructuralPartialEq for SampleParts

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<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.