A1: add ColourUtil.LerpTowardWhite accent-tint helper

This commit is contained in:
2026-06-16 12:02:53 +02:00
parent b372ab84c3
commit f5ba1c0246
+20
View File
@@ -102,6 +102,26 @@ internal static class ColourUtil
return (abgr & 0x00FFFFFFu) | ((uint)newAlpha << 24);
}
// Mixes an ABGR colour's RGB channels toward white (0xFF) by factor t in
// [0, 1]; the alpha byte is left untouched. A1 hover-sheen accent-tint:
// a low factor nudges the sweep toward the element's accent hue without
// going fully saturated (effect level stays "subtle"). RGB-only on
// purpose -- DrawHoverSheen owns the alpha falloff.
internal static uint LerpTowardWhite(uint abgr, float t)
{
t = Math.Clamp(t, 0f, 1f);
var a = (byte)((abgr >> 24) & 0xFFu);
var b = (byte)((abgr >> 16) & 0xFFu);
var g = (byte)((abgr >> 8) & 0xFFu);
var r = (byte)(abgr & 0xFFu);
var nr = (byte)Math.Round(r + (0xFF - r) * t);
var ng = (byte)Math.Round(g + (0xFF - g) * t);
var nb = (byte)Math.Round(b + (0xFF - b) * t);
return ((uint)a << 24) | ((uint)nb << 16) | ((uint)ng << 8) | nr;
}
public static uint HexToRgba(string hex)
{
ArgumentNullException.ThrowIfNull(hex);