From 5861cd6edc160f28151c4e097005f7fd4a8654e7 Mon Sep 17 00:00:00 2001 From: Anstro Pleuton Date: Fri, 6 Oct 2023 13:16:40 +0530 Subject: [PATCH] Add more color functions --- src/raylib.h | 2 ++ src/rtextures.c | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/raylib.h b/src/raylib.h index f52f3460d..6fa4b2d81 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -1357,6 +1357,8 @@ RLAPI Color ColorFromNormalized(Vector4 normalized); // G RLAPI Vector3 ColorToHSV(Color color); // Get HSV values for a Color, hue [0..360], saturation/value [0..1] RLAPI Color ColorFromHSV(float hue, float saturation, float value); // Get a Color from HSV values, hue [0..360], saturation/value [0..1] RLAPI Color ColorTint(Color color, Color tint); // Get color multiplied with another color +RLAPI Color ColorInvert(Color color); // Get color inverted +RLAPI Color ColorGrayscale(Color color); // Get color grayscaled RLAPI Color ColorBrightness(Color color, float factor); // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f RLAPI Color ColorContrast(Color color, float contrast); // Get color with contrast correction, contrast values between -1.0f and 1.0f RLAPI Color ColorAlpha(Color color, float alpha); // Get color with alpha applied, alpha goes from 0.0f to 1.0f diff --git a/src/rtextures.c b/src/rtextures.c index fa8d91ea4..111fde9e2 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -4432,6 +4432,29 @@ Color ColorTint(Color color, Color tint) return result; } +// Get color inverted +Color ColorInvert(Color color) +{ + Color result = color; + + color.r = 255 - color.r; + color.g = 255 - color.g; + color.b = 255 - color.b; + + return result; +} + +// Get color grayscaled +Color ColorGrayscale(Color color) +{ + Color result = color; + + Vector4 normalizedColor = ColorNormalize(color); + *((unsigned char *)&result) = (unsigned char)((normalizedColor.x*0.299f + normalizedColor.y*0.587f + normalizedColor.z*0.114f)*255.0f); + + return result; +} + // Get color with brightness correction, brightness factor goes from -1.0f to 1.0f Color ColorBrightness(Color color, float factor) {