#[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, 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§
source§impl 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§
source§impl AddAssign<Color> for Color
impl AddAssign<Color> for Color
source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moresource§impl AddAssign<f32> for Color
impl AddAssign<f32> for Color
source§fn add_assign(&mut self, rhs: f32)
fn add_assign(&mut self, rhs: f32)
+=
operation. Read moresource§impl DivAssign<Color> for Color
impl DivAssign<Color> for Color
source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/=
operation. Read moresource§impl DivAssign<f32> for Color
impl DivAssign<f32> for Color
source§fn div_assign(&mut self, rhs: f32)
fn div_assign(&mut self, rhs: f32)
/=
operation. Read moresource§impl MulAssign<Color> for Color
impl MulAssign<Color> for Color
source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moresource§impl MulAssign<f32> for Color
impl MulAssign<f32> for Color
source§fn mul_assign(&mut self, rhs: f32)
fn mul_assign(&mut self, rhs: f32)
*=
operation. Read moresource§impl PartialEq<Color> for Color
impl PartialEq<Color> for Color
source§impl SubAssign<Color> for Color
impl SubAssign<Color> for Color
source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read moresource§impl SubAssign<f32> for Color
impl SubAssign<f32> for Color
source§fn sub_assign(&mut self, rhs: f32)
fn sub_assign(&mut self, rhs: f32)
-=
operation. Read moreimpl Copy for Color
impl StructuralPartialEq for Color
impl UniformValue for Color
Can be accessed as a vec4
in your shader.