Implement explicit Color::into_u32 instead of Into trait
This commit is contained in:
parent
ea7f2626b1
commit
226ce3d6c9
1 changed files with 12 additions and 13 deletions
|
|
@ -120,6 +120,18 @@ impl Color {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Converts the [`Color`] into a `u32` value containing its RGBA8 components.
|
||||||
|
pub fn into_u32(self) -> u32 {
|
||||||
|
let [r, g, b, a] = self.into_rgba8();
|
||||||
|
|
||||||
|
let r = (r as u32) << 24;
|
||||||
|
let g = (g as u32) << 16;
|
||||||
|
let b = (b as u32) << 8;
|
||||||
|
let a = a as u32;
|
||||||
|
|
||||||
|
r | g | b | a
|
||||||
|
}
|
||||||
|
|
||||||
/// Inverts the [`Color`] in-place.
|
/// Inverts the [`Color`] in-place.
|
||||||
pub fn invert(&mut self) {
|
pub fn invert(&mut self) {
|
||||||
self.r = 1.0f32 - self.r;
|
self.r = 1.0f32 - self.r;
|
||||||
|
|
@ -145,19 +157,6 @@ impl From<[f32; 4]> for Color {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Into<u32> for Color {
|
|
||||||
fn into(self) -> u32 {
|
|
||||||
let [r, g, b, a] = self.into_rgba8();
|
|
||||||
|
|
||||||
let r = (r as u32) << 24;
|
|
||||||
let g = (g as u32) << 16;
|
|
||||||
let b = (b as u32) << 8;
|
|
||||||
let a = a as u32;
|
|
||||||
|
|
||||||
r | g | b | a
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates a [`Color`] with shorter and cleaner syntax.
|
/// Creates a [`Color`] with shorter and cleaner syntax.
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue