1 /// The color type that is used by all the backend 2 #[derive(Clone, Copy)] 3 pub struct BackendColor { 4 pub alpha: f64, 5 pub rgb: (u8, u8, u8), 6 } 7 8 impl BackendColor { 9 #[inline(always)] mix(&self, alpha: f64) -> Self10 pub fn mix(&self, alpha: f64) -> Self { 11 Self { 12 alpha: self.alpha * alpha, 13 rgb: self.rgb, 14 } 15 } 16 } 17 18 /// The style data for the backend drawing API 19 pub trait BackendStyle { 20 /// Get the color of current style color(&self) -> BackendColor21 fn color(&self) -> BackendColor; 22 23 /// Get the stroke width of current style stroke_width(&self) -> u3224 fn stroke_width(&self) -> u32 { 25 1 26 } 27 } 28 29 impl BackendStyle for BackendColor { color(&self) -> BackendColor30 fn color(&self) -> BackendColor { 31 *self 32 } 33 } 34