Expand description
An RGBA color.
The components are stored as f32
values, which will generally be
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.
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
sourceimpl Color
impl Color
sourcepub const fn rgb(r: f32, g: f32, b: f32) -> Color
pub const fn rgb(r: f32, g: f32, b: f32) -> Color
Creates a new Color
, with the specified RGB values and the alpha set to 1.0.
sourcepub const fn rgba(r: f32, g: f32, b: f32, a: f32) -> Color
pub const fn rgba(r: f32, g: f32, b: f32, a: f32) -> Color
Creates a new Color
, with the specified RGBA values.
sourcepub fn rgb8(r: u8, g: u8, b: u8) -> Color
pub fn rgb8(r: u8, g: u8, b: u8) -> Color
Creates a new Color
, with the specified RGB integer (0-255) values and the alpha set to 255.
sourcepub fn rgba8(r: u8, g: u8, b: u8, a: u8) -> Color
pub fn rgba8(r: u8, g: u8, b: u8, a: u8) -> Color
Creates a new Color
, with the specified RGBA (0-255) integer values.
sourcepub fn hex(hex: &str) -> Color
pub fn hex(hex: &str) -> Color
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.
sourcepub fn try_hex(hex: &str) -> Result<Color>
pub fn try_hex(hex: &str) -> Result<Color>
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
TetraError::InvalidColor
will be returned if the specified color is invalid.
sourcepub const fn with_red(self, r: f32) -> Self
pub const fn with_red(self, r: f32) -> Self
Returns the color with the red component set to the specified value.
sourcepub const fn with_green(self, g: f32) -> Self
pub const fn with_green(self, g: f32) -> Self
Returns the color with the green component set to the specified value.
sourcepub const fn with_blue(self, b: f32) -> Self
pub const fn with_blue(self, b: f32) -> Self
Returns the color with the blue component set to the specified value.
sourcepub const fn with_alpha(self, a: f32) -> Self
pub const fn with_alpha(self, a: f32) -> Self
Returns the color with the alpha component set to the specified value.
sourcepub fn to_premultiplied(self) -> Color
pub fn to_premultiplied(self) -> Color
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.
sourcepub const BLACK: Color
pub const BLACK: Color
Shortcut for Color::rgb(0.0, 0.0, 0.0)
.
sourcepub const WHITE: Color
pub const WHITE: Color
Shortcut for Color::rgb(1.0, 1.0, 1.0)
.
sourcepub const RED: Color
pub const RED: Color
Shortcut for Color::rgb(1.0, 0.0, 0.0)
.
sourcepub const GREEN: Color
pub const GREEN: Color
Shortcut for Color::rgb(0.0, 1.0, 0.0)
.
Trait Implementations
sourceimpl AddAssign<Color> for Color
impl AddAssign<Color> for Color
sourcefn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
Performs the +=
operation. Read more
sourceimpl AddAssign<f32> for Color
impl AddAssign<f32> for Color
sourcefn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
Performs the +=
operation. Read more
sourceimpl DivAssign<Color> for Color
impl DivAssign<Color> for Color
sourcefn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
Performs the /=
operation. Read more
sourceimpl DivAssign<f32> for Color
impl DivAssign<f32> for Color
sourcefn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
Performs the /=
operation. Read more
sourceimpl MulAssign<Color> for Color
impl MulAssign<Color> for Color
sourcefn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
Performs the *=
operation. Read more
sourceimpl MulAssign<f32> for Color
impl MulAssign<f32> for Color
sourcefn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
Performs the *=
operation. Read more
sourceimpl SubAssign<Color> for Color
impl SubAssign<Color> for Color
sourcefn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
Performs the -=
operation. Read more
sourceimpl SubAssign<f32> for Color
impl SubAssign<f32> for Color
sourcefn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
Performs the -=
operation. Read more
impl Copy for Color
impl StructuralPartialEq for Color
impl UniformValue for Color
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more