diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-12 12:48:11 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-12 12:48:11 +0100 |
| commit | 9fd81c0b38b2b843c24fb61bf8cb5b7873deaa72 (patch) | |
| tree | a2d4d76a4fcc1334d83c5538e684061913be24d3 /src/estd/graphics/color.zig | |
| parent | dae5bc02b1c934075e95694953b4330676e21611 (diff) | |
graphics: add line
Diffstat (limited to 'src/estd/graphics/color.zig')
| -rw-r--r-- | src/estd/graphics/color.zig | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/estd/graphics/color.zig b/src/estd/graphics/color.zig new file mode 100644 index 0000000..b7fd97e --- /dev/null +++ b/src/estd/graphics/color.zig @@ -0,0 +1,23 @@ +pub const Color = packed struct(u32) { + const Self = @This(); + + blue: u8, + green: u8, + red: u8, + _padding: u8 = 0x0, + + pub fn mix(self: *const Self, other: *const Self, factor: f64) Self { + const inverse = 1 - factor; + return Self { + .red = @intFromFloat( + @as(f64, @floatFromInt(self.red)) * inverse + @as(f64, @floatFromInt(other.red)) * factor + ), + .green = @intFromFloat( + @as(f64, @floatFromInt(self.green)) * inverse + @as(f64, @floatFromInt(other.green)) * factor + ), + .blue = @intFromFloat( + @as(f64, @floatFromInt(self.blue)) * inverse + @as(f64, @floatFromInt(other.blue)) * factor + ), + }; + } +}; |