Skip to main content

Rgba8

Struct Rgba8 

Source
pub struct Rgba8 {
    pub r: u8,
    pub g: u8,
    pub b: u8,
    pub a: u8,
}
Expand description

RGBA color with u8 components. Port of C++ rgba8T<linear> (linear colorspace variant).

Fields§

§r: u8§g: u8§b: u8§a: u8

Implementations§

Source§

impl Rgba8

Source

pub const BASE_SHIFT: u32 = 8

Source

pub const BASE_SCALE: u32

Source

pub const BASE_MASK: u32

Source

pub const BASE_MSB: u32

Source

pub fn new(r: u32, g: u32, b: u32, a: u32) -> Self

Source

pub fn new_opaque(r: u32, g: u32, b: u32) -> Self

Source

pub fn with_opacity(c: &Rgba8, a: u32) -> Self

Source

pub fn from_rgba(c: &Rgba) -> Self

Convert from Rgba (f64) to Rgba8 (u8).

Source

pub fn to_rgba(&self) -> Rgba

Convert to Rgba (f64).

Source

pub fn to_double(a: u8) -> f64

Source

pub fn from_double(a: f64) -> u8

Source

pub fn empty_value() -> u8

Source

pub fn full_value() -> u8

Source

pub fn is_transparent(&self) -> bool

Source

pub fn is_opaque(&self) -> bool

Source

pub fn invert(x: u8) -> u8

Source

pub fn multiply(a: u8, b: u8) -> u8

Fixed-point multiply, exact over u8. (a * b + 128) >> 8, with rounding correction.

Source

pub fn demultiply_value(a: u8, b: u8) -> u8

Fixed-point demultiply.

Source

pub fn mult_cover(a: u8, b: CoverType) -> u8

Multiply a color component by a cover.

Source

pub fn scale_cover(a: CoverType, b: u8) -> CoverType

Scale a cover by a value.

Source

pub fn prelerp(p: u8, q: u8, a: u8) -> u8

Interpolate p to q by a, assuming q is premultiplied by a.

Source

pub fn lerp(p: u8, q: u8, a: u8) -> u8

Interpolate p to q by a.

Source

pub fn clear(&mut self) -> &mut Self

Source

pub fn transparent(&mut self) -> &mut Self

Source

pub fn set_opacity(&mut self, a: f64) -> &mut Self

Source

pub fn opacity(&self) -> f64

Source

pub fn premultiply(&mut self) -> &mut Self

Source

pub fn premultiply_with_alpha(&mut self, a_: u32) -> &mut Self

Source

pub fn demultiply(&mut self) -> &mut Self

Source

pub fn gradient(&self, c: &Rgba8, k: f64) -> Rgba8

Interpolate between self and c by parameter k (0.0 to 1.0).

Source

pub fn add(&mut self, c: &Rgba8, cover: u32)

Add color c with coverage cover.

Source

pub fn apply_gamma_dir(&mut self, gamma: &GammaLut)

Apply forward gamma correction.

Source

pub fn apply_gamma_inv(&mut self, gamma: &GammaLut)

Apply inverse gamma correction.

Source

pub fn no_color() -> Self

Source

pub fn from_wavelength(wl: f64, gamma: f64) -> Self

Trait Implementations§

Source§

impl Clone for Rgba8

Source§

fn clone(&self) -> Rgba8

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for Rgba8

Source§

impl Debug for Rgba8

Source§

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

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

impl Default for Rgba8

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for Rgba8

Source§

impl PartialEq for Rgba8

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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 StructuralPartialEq for Rgba8

Auto Trait Implementations§

§

impl Freeze for Rgba8

§

impl RefUnwindSafe for Rgba8

§

impl Send for Rgba8

§

impl Sync for Rgba8

§

impl Unpin for Rgba8

§

impl UnsafeUnpin for Rgba8

§

impl UnwindSafe for Rgba8

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<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.