#include "color32.h" sw_color32 sw_color32_from_rgb(u8 r, u8 g, u8 b) { return (u32)r | ((u32)g << 8) | ((u32)b << 16) | ((u32)255 << 24); } sw_color32 sw_color32_from_rgba(u8 r, u8 g, u8 b, u8 a) { return (u32)r | ((u32)g << 8) | ((u32)b << 16) | ((u32)a << 24); } u8 sw_color32_get_r(sw_color32 col) { return col & 0xFF; } u8 sw_color32_get_g(sw_color32 col) { return (col >> 8) & 0xFF; } u8 sw_color32_get_b(sw_color32 col) { return (col >> 16) & 0xFF; } u8 sw_color32_get_a(sw_color32 col) { return (col >> 24) & 0xFF; } f32 sw_color32_get_rf(sw_color32 col) { return (f32)sw_color32_get_r(col) / 255.f; } f32 sw_color32_get_gf(sw_color32 col) { return (f32)sw_color32_get_g(col) / 255.f; } f32 sw_color32_get_bf(sw_color32 col) { return (f32)sw_color32_get_b(col) / 255.f; } f32 sw_color32_get_af(sw_color32 col) { return (f32)sw_color32_get_a(col) / 255.f; } sw_color32 sw_color32_mix(sw_color32 a, sw_color32 b, f32 mix) { f32 imix; imix = 1.f - mix; return sw_color32_from_rgba( sw_color32_get_r(a) * imix + sw_color32_get_r(b) * mix, sw_color32_get_g(a) * imix + sw_color32_get_g(b) * mix, sw_color32_get_b(a) * imix + sw_color32_get_b(b) * mix, sw_color32_get_a(a) * imix + sw_color32_get_a(b) * mix ); }