This commit is contained in:
Nathan Sobo 2023-07-24 23:27:14 -06:00
parent 19e4cad7a9
commit 54a7419fa2
13 changed files with 518 additions and 107 deletions

View file

@ -17,33 +17,73 @@ use serde_json::json;
#[repr(transparent)]
pub struct Color(#[schemars(with = "String")] ColorU);
pub fn color(rgba: u32) -> Color {
color(rgba)
}
pub fn rgb(r: f32, g: f32, b: f32) -> Color {
Color(ColorF::new(r, g, b, 1.).to_u8())
}
pub fn rgba(r: f32, g: f32, b: f32, a: f32) -> Color {
Color(ColorF::new(r, g, b, a).to_u8())
}
pub fn transparent_black() -> Color {
Color(ColorU::transparent_black())
}
pub fn black() -> Color {
Color(ColorU::black())
}
pub fn white() -> Color {
Color(ColorU::white())
}
pub fn red() -> Color {
color(0xff0000ff)
}
pub fn green() -> Color {
color(0x00ff00ff)
}
pub fn blue() -> Color {
color(0x0000ffff)
}
pub fn yellow() -> Color {
color(0xffff00ff)
}
impl Color {
pub fn transparent_black() -> Self {
Self(ColorU::transparent_black())
transparent_black()
}
pub fn black() -> Self {
Self(ColorU::black())
black()
}
pub fn white() -> Self {
Self(ColorU::white())
white()
}
pub fn red() -> Self {
Self(ColorU::from_u32(0xff0000ff))
Color::from_u32(0xff0000ff)
}
pub fn green() -> Self {
Self(ColorU::from_u32(0x00ff00ff))
Color::from_u32(0x00ff00ff)
}
pub fn blue() -> Self {
Self(ColorU::from_u32(0x0000ffff))
Color::from_u32(0x0000ffff)
}
pub fn yellow() -> Self {
Self(ColorU::from_u32(0xffff00ff))
Color::from_u32(0xffff00ff)
}
pub fn new(r: u8, g: u8, b: u8, a: u8) -> Self {