From 5d9cccc9fd3dc76ba586ec6773f1aad849acbafe Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 22 Dec 2021 14:24:37 +0100 Subject: [PATCH] Added ColorExtensions.Multiply --- CHANGELOG.md | 1 + MLEM/Extensions/ColorExtensions.cs | 38 +++++++++++++++++++----------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a912b9..98db3bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ Jump to version: ### MLEM Additions - Added StringBuilder overloads to GenericFont +- Added ColorExtensions.Multiply Improvements - Generify GenericFont's string drawing diff --git a/MLEM/Extensions/ColorExtensions.cs b/MLEM/Extensions/ColorExtensions.cs index e14f5b0..5095888 100644 --- a/MLEM/Extensions/ColorExtensions.cs +++ b/MLEM/Extensions/ColorExtensions.cs @@ -3,16 +3,16 @@ using Microsoft.Xna.Framework; namespace MLEM.Extensions { /// - /// A set of extensions for dealing with objects + /// A set of extensions for dealing with objects. /// public static class ColorExtensions { /// - /// Copies the alpha value from another color into this color. + /// Copies the alpha value from another color into this color and returns the result. /// - /// The color - /// The color to copy the alpha from - /// The first color with the second color's alpha value + /// The color. + /// The color to copy the alpha from. + /// The first color with the second color's alpha value. public static Color CopyAlpha(this Color color, Color other) { return color * (other.A / 255F); } @@ -20,16 +20,26 @@ namespace MLEM.Extensions { /// /// Returns an inverted version of this color. /// - /// The color to invert - /// The inverted color + /// The color to invert. + /// The inverted color. public static Color Invert(this Color color) { return new Color(255 - color.R, 255 - color.G, 255 - color.B, color.A); } + /// + /// Multiplies this color with another color and returns the result. + /// + /// The first color. + /// The second color. + /// The two colors multiplied together. + public static Color Multiply(this Color color, Color other) { + return new Color(color.ToVector4() * other.ToVector4()); + } + } /// - /// A set of utility methods for dealing with objects + /// A set of utility methods for dealing with objects. /// public static class ColorHelper { @@ -37,8 +47,8 @@ namespace MLEM.Extensions { /// Parses a hexadecimal number into an rgba color. /// The number should be in the format 0xaarrggbb. /// - /// The number to parse - /// The resulting color + /// The number to parse. + /// The resulting color. public static Color FromHexRgba(int value) { return new Color(value >> 16 & 0xFF, value >> 8 & 0xFF, value >> 0 & 0xFF, value >> 24 & 0xFF); } @@ -47,8 +57,8 @@ namespace MLEM.Extensions { /// Parses a hexadecimal number into an rgb color with 100% alpha. /// The number should be in the format 0xrrggbb. /// - /// The number to parse - /// The resulting color + /// The number to parse. + /// The resulting color. public static Color FromHexRgb(int value) { return new Color(value >> 16 & 0xFF, value >> 8 & 0xFF, value >> 0 & 0xFF); } @@ -57,8 +67,8 @@ namespace MLEM.Extensions { /// Parses a hexadecimal string into a color. /// The string can either be formatted as RRGGBB or AARRGGBB and can optionally start with a #. /// - /// The string to parse - /// The resulting color + /// The string to parse. + /// The resulting color. public static Color FromHexString(string value) { if (value.StartsWith("#")) value = value.Substring(1);