From 0825fc57a9f50a86594b4090954366d47aa82725 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Mon, 19 Apr 2021 18:24:15 +0200 Subject: [PATCH] Move foreground colour helper into `OsuColour` --- osu.Game/Graphics/OsuColour.cs | 12 ++++++++++ .../Graphics/UserInterfaceV2/ColourDisplay.cs | 3 +-- .../Timeline/TimelineHitObjectBlueprint.cs | 3 +-- osu.Game/Utils/ColourUtils.cs | 23 ------------------- 4 files changed, 14 insertions(+), 27 deletions(-) delete mode 100644 osu.Game/Utils/ColourUtils.cs diff --git a/osu.Game/Graphics/OsuColour.cs b/osu.Game/Graphics/OsuColour.cs index c3b9b6006c..15967c37c2 100644 --- a/osu.Game/Graphics/OsuColour.cs +++ b/osu.Game/Graphics/OsuColour.cs @@ -94,6 +94,18 @@ namespace osu.Game.Graphics } } + /// + /// Returns a foreground text colour that is supposed to contrast well with + /// the supplied . + /// + public static Color4 ForegroundTextColourFor(Color4 backgroundColour) + { + // formula taken from the RGB->YIQ conversions: https://en.wikipedia.org/wiki/YIQ + // brightness here is equivalent to the Y component in the above colour model, which is a rough estimate of lightness. + float brightness = 0.299f * backgroundColour.R + 0.587f * backgroundColour.G + 0.114f * backgroundColour.B; + return Gray(brightness > 0.5f ? 0.2f : 0.9f); + } + // See https://github.com/ppy/osu-web/blob/master/resources/assets/less/colors.less public readonly Color4 PurpleLighter = Color4Extensions.FromHex(@"eeeeff"); public readonly Color4 PurpleLight = Color4Extensions.FromHex(@"aa88ff"); diff --git a/osu.Game/Graphics/UserInterfaceV2/ColourDisplay.cs b/osu.Game/Graphics/UserInterfaceV2/ColourDisplay.cs index c07e5d5bf7..01d91f7cfd 100644 --- a/osu.Game/Graphics/UserInterfaceV2/ColourDisplay.cs +++ b/osu.Game/Graphics/UserInterfaceV2/ColourDisplay.cs @@ -10,7 +10,6 @@ using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.UserInterface; using osu.Framework.Localisation; using osu.Game.Graphics.Sprites; -using osu.Game.Utils; using osuTK; using osuTK.Graphics; @@ -102,7 +101,7 @@ namespace osu.Game.Graphics.UserInterfaceV2 { fill.Colour = current.Value; colourHexCode.Text = current.Value.ToHex(); - colourHexCode.Colour = ColourUtils.ForegroundTextColourFor(current.Value); + colourHexCode.Colour = OsuColour.ForegroundTextColourFor(current.Value); } } } diff --git a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineHitObjectBlueprint.cs b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineHitObjectBlueprint.cs index dc67009d08..0425370ae5 100644 --- a/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineHitObjectBlueprint.cs +++ b/osu.Game/Screens/Edit/Compose/Components/Timeline/TimelineHitObjectBlueprint.cs @@ -21,7 +21,6 @@ using osu.Game.Rulesets.Edit; using osu.Game.Rulesets.Objects; using osu.Game.Rulesets.Objects.Types; using osu.Game.Skinning; -using osu.Game.Utils; using osuTK; using osuTK.Graphics; @@ -159,7 +158,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline circle.Colour = comboColour; var col = circle.Colour.TopLeft.Linear; - colouredComponents.Colour = ColourUtils.ForegroundTextColourFor(col); + colouredComponents.Colour = OsuColour.ForegroundTextColourFor(col); } protected override void Update() diff --git a/osu.Game/Utils/ColourUtils.cs b/osu.Game/Utils/ColourUtils.cs deleted file mode 100644 index 33f6f5981f..0000000000 --- a/osu.Game/Utils/ColourUtils.cs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. -// See the LICENCE file in the repository root for full licence text. - -using osu.Game.Graphics; -using osuTK.Graphics; - -namespace osu.Game.Utils -{ - public static class ColourUtils - { - /// - /// Returns a foreground text colour that is supposed to contrast well on top of - /// the supplied . - /// - public static Color4 ForegroundTextColourFor(Color4 backgroundColour) - { - // formula taken from the RGB->YIQ conversions: https://en.wikipedia.org/wiki/YIQ - // brightness here is equivalent to the Y component in the above colour model, which is a rough estimate of lightness. - float brightness = 0.299f * backgroundColour.R + 0.587f * backgroundColour.G + 0.114f * backgroundColour.B; - return OsuColour.Gray(brightness > 0.5f ? 0.2f : 0.9f); - } - } -}