Struct tetra::graphics::Color[][src]

#[repr(C)]
pub struct Color { pub r: f32, pub g: f32, pub b: f32, pub a: f32, }
Expand description

An RGBA color.

The components are stored as f32 values in the range of 0.0 to 1.0. If your data is made up of bytes or hex values, this type provides constructors that will carry out the conversion for you.

The std arithmetic traits are implemented for this type, which allows you to add/subtract/multiply/divide colors. These are implemented as saturating operations (i.e. the values will always remain between 0.0 and 1.0).

Serde

Serialization and deserialization of this type (via Serde) can be enabled via the serde_support feature.

Fields

r: f32

The red component of the color.

g: f32

The green component of the color.

b: f32

The blue component of the color.

a: f32

The alpha component of the color.

Implementations

impl Color[src]

pub const fn rgb(r: f32, g: f32, b: f32) -> Color[src]

Creates a new Color, with the specified RGB values and the alpha set to 1.0.

pub const fn rgba(r: f32, g: f32, b: f32, a: f32) -> Color[src]

Creates a new Color, with the specified RGBA values.

pub fn rgb8(r: u8, g: u8, b: u8) -> Color[src]

Creates a new Color, with the specified RGB integer (0-255) values and the alpha set to 255.

pub fn rgba8(r: u8, g: u8, b: u8, a: u8) -> Color[src]

Creates a new Color, with the specified RGBA (0-255) integer values.

pub fn hex(hex: &str) -> Color[src]

Creates a new Color using a hexidecimal color code, panicking if the input is invalid.

Six and eight digit codes can be used - the former will be interpreted as RGB, and the latter as RGBA. The # prefix (commonly used on the web) will be stripped if present.

pub fn try_hex(hex: &str) -> Result<Color>[src]

Creates a new Color using a hexidecimal color code, returning an error if the input is invalid.

Six and eight digit codes can be used - the former will be interpreted as RGB, and the latter as RGBA. The # prefix (commonly used on the web) will be stripped if present.

Errors

pub const fn with_red(self, r: f32) -> Self[src]

Returns the color with the red component set to the specified value.

pub const fn with_green(self, g: f32) -> Self[src]

Returns the color with the green component set to the specified value.

pub const fn with_blue(self, b: f32) -> Self[src]

Returns the color with the blue component set to the specified value.

pub const fn with_alpha(self, a: f32) -> Self[src]

Returns the color with the alpha component set to the specified value.

pub fn to_premultiplied(self) -> Color[src]

Returns the color with the RGB components multiplied by the alpha component.

This can be useful when working with premultiplied alpha blending, if you want to convert a non-premultiplied color into its premultiplied version.

pub const BLACK: Color[src]

pub const WHITE: Color[src]

pub const RED: Color[src]

pub const GREEN: Color[src]

pub const BLUE: Color[src]

Shortcut for Color::rgb(0.0, 0.0, 1.0)`](Self::rgb).

Trait Implementations

impl Add<Color> for Color[src]

type Output = Color

The resulting type after applying the + operator.

fn add(self, rhs: Self) -> Self::Output[src]

Performs the + operation. Read more

impl Add<f32> for Color[src]

type Output = Color

The resulting type after applying the + operator.

fn add(self, rhs: f32) -> Self::Output[src]

Performs the + operation. Read more

impl AddAssign<Color> for Color[src]

fn add_assign(&mut self, rhs: Self)[src]

Performs the += operation. Read more

impl AddAssign<f32> for Color[src]

fn add_assign(&mut self, rhs: f32)[src]

Performs the += operation. Read more

impl Clone for Color[src]

fn clone(&self) -> Color[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Color[src]

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

Formats the value using the given formatter. Read more

impl Default for Color[src]

fn default() -> Color[src]

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

impl Div<Color> for Color[src]

type Output = Color

The resulting type after applying the / operator.

fn div(self, rhs: Self) -> Self::Output[src]

Performs the / operation. Read more

impl Div<f32> for Color[src]

type Output = Color

The resulting type after applying the / operator.

fn div(self, rhs: f32) -> Self::Output[src]

Performs the / operation. Read more

impl DivAssign<Color> for Color[src]

fn div_assign(&mut self, rhs: Self)[src]

Performs the /= operation. Read more

impl DivAssign<f32> for Color[src]

fn div_assign(&mut self, rhs: f32)[src]

Performs the /= operation. Read more

impl From<[f32; 4]> for Color[src]

fn from(v: [f32; 4]) -> Self[src]

Performs the conversion.

impl From<[u8; 4]> for Color[src]

fn from(v: [u8; 4]) -> Self[src]

Performs the conversion.

impl From<Vec4<f32>> for Color[src]

fn from(v: Vec4<f32>) -> Self[src]

Performs the conversion.

impl Mul<Color> for Color[src]

type Output = Color

The resulting type after applying the * operator.

fn mul(self, rhs: Self) -> Self::Output[src]

Performs the * operation. Read more

impl Mul<f32> for Color[src]

type Output = Color

The resulting type after applying the * operator.

fn mul(self, rhs: f32) -> Self::Output[src]

Performs the * operation. Read more

impl MulAssign<Color> for Color[src]

fn mul_assign(&mut self, rhs: Self)[src]

Performs the *= operation. Read more

impl MulAssign<f32> for Color[src]

fn mul_assign(&mut self, rhs: f32)[src]

Performs the *= operation. Read more

impl PartialEq<Color> for Color[src]

fn eq(&self, other: &Color) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Color) -> bool[src]

This method tests for !=.

impl Sub<Color> for Color[src]

type Output = Color

The resulting type after applying the - operator.

fn sub(self, rhs: Self) -> Self::Output[src]

Performs the - operation. Read more

impl Sub<f32> for Color[src]

type Output = Color

The resulting type after applying the - operator.

fn sub(self, rhs: f32) -> Self::Output[src]

Performs the - operation. Read more

impl SubAssign<Color> for Color[src]

fn sub_assign(&mut self, rhs: Self)[src]

Performs the -= operation. Read more

impl SubAssign<f32> for Color[src]

fn sub_assign(&mut self, rhs: f32)[src]

Performs the -= operation. Read more

impl Copy for Color[src]

impl StructuralPartialEq for Color[src]

impl UniformValue for Color[src]

Can be accessed as a vec4 in your shader.

Auto Trait Implementations

impl RefUnwindSafe for Color

impl Send for Color

impl Sync for Color

impl Unpin for Color

impl UnwindSafe for Color

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.