| ... | @@ -9,6 +9,13 @@ g: u8, // green value | ... | @@ -9,6 +9,13 @@ g: u8, // green value |
| 9 | b: u8, // blue value | 9 | b: u8, // blue value |
| 10 | a: u8, // alpha value | 10 | a: u8, // alpha value |
| 11 | | 11 | |
| | 12 | pub const Float = struct { |
| | 13 | r: f32, |
| | 14 | g: f32, |
| | 15 | b: f32, |
| | 16 | a: f32, |
| | 17 | }; |
| | 18 | |
| 12 | pub fn initRGBA(r: u8, g: u8, b: u8, a: u8) Self { | 19 | pub fn initRGBA(r: u8, g: u8, b: u8, a: u8) Self { |
| 13 | return Self{ | 20 | return Self{ |
| 14 | .r = r, | 21 | .r = r, |
| ... | @@ -81,3 +88,12 @@ pub fn to_linear_rgb(x: Self) color.LinearRgb { | ... | @@ -81,3 +88,12 @@ pub fn to_linear_rgb(x: Self) color.LinearRgb { |
| 81 | lut[x.a], | 88 | lut[x.a], |
| 82 | ); | 89 | ); |
| 83 | } | 90 | } |
| | 91 | |
| | 92 | pub fn to_float(x: Self) Float { |
| | 93 | return Self{ |
| | 94 | .r = @as(f32, @floatFromInt(x.r)) / 255.0, |
| | 95 | .g = @as(f32, @floatFromInt(x.g)) / 255.0, |
| | 96 | .b = @as(f32, @floatFromInt(x.b)) / 255.0, |
| | 97 | .a = @as(f32, @floatFromInt(x.a)) / 255.0, |
| | 98 | }; |
| | 99 | } |