1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
pub enum Color { Unmanaged(i32), Managed(i64), } impl Color { /// Returns an unmanaged RGB color. pub fn device_rgb(red: f32, green: f32, blue: f32, alpha: f32) -> Color { let (red, green, blue, alpha) = ( (red * 255.0) as u64, (green * 255.0) as u64, (blue * 255.0) as u64, (alpha * 255.0) as u64, ); Color::Unmanaged((0u64 | (alpha << 24) | (red << 16) | (green << 8) | (blue << 0)) as i32) } }