From 9fd81c0b38b2b843c24fb61bf8cb5b7873deaa72 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Wed, 12 Feb 2025 12:48:11 +0100 Subject: graphics: add line --- src/estd/graphics/color.zig | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/estd/graphics/color.zig (limited to 'src/estd/graphics/color.zig') 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 + ), + }; + } +}; -- cgit v1.2.3-70-g09d2