summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorLe Juez Victor <[email protected]>2024-05-29 23:44:20 +0200
committerGitHub <[email protected]>2024-05-29 23:44:20 +0200
commitf2344cd08944a7be63b9e5ebf134daf5ff1cd84f (patch)
tree24af0acd1d0ff9a0c6356be15fc651c6470aaf77 /src
parentc04629f6d46fbea68a69a3b376c02137a325ca53 (diff)
downloadraylib-f2344cd08944a7be63b9e5ebf134daf5ff1cd84f.tar.gz
raylib-f2344cd08944a7be63b9e5ebf134daf5ff1cd84f.zip
review color tint functions (#4015)
Diffstat (limited to 'src')
-rw-r--r--src/rtextures.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/src/rtextures.c b/src/rtextures.c
index 571387f2..2f02afec 100644
--- a/src/rtextures.c
+++ b/src/rtextures.c
@@ -2667,17 +2667,12 @@ void ImageColorTint(Image *image, Color color)
Color *pixels = LoadImageColors(*image);
- float cR = (float)color.r/255;
- float cG = (float)color.g/255;
- float cB = (float)color.b/255;
- float cA = (float)color.a/255;
-
for (int i = 0; i < image->width*image->height; i++)
{
- unsigned char r = (unsigned char)(((float)pixels[i].r/255*cR)*255.0f);
- unsigned char g = (unsigned char)(((float)pixels[i].g/255*cG)*255.0f);
- unsigned char b = (unsigned char)(((float)pixels[i].b/255*cB)*255.0f);
- unsigned char a = (unsigned char)(((float)pixels[i].a/255*cA)*255.0f);
+ unsigned char r = (unsigned char)(((int)pixels[i].r*(int)color.r)/255);
+ unsigned char g = (unsigned char)(((int)pixels[i].g*(int)color.g)/255);
+ unsigned char b = (unsigned char)(((int)pixels[i].b*(int)color.b)/255);
+ unsigned char a = (unsigned char)(((int)pixels[i].a*(int)color.a)/255);
pixels[i].r = r;
pixels[i].g = g;
@@ -4639,15 +4634,10 @@ Color ColorTint(Color color, Color tint)
{
Color result = color;
- float cR = (float)tint.r/255;
- float cG = (float)tint.g/255;
- float cB = (float)tint.b/255;
- float cA = (float)tint.a/255;
-
- unsigned char r = (unsigned char)(((float)color.r/255*cR)*255.0f);
- unsigned char g = (unsigned char)(((float)color.g/255*cG)*255.0f);
- unsigned char b = (unsigned char)(((float)color.b/255*cB)*255.0f);
- unsigned char a = (unsigned char)(((float)color.a/255*cA)*255.0f);
+ unsigned char r = (unsigned char)(((int)color.r*(int)tint.r)/255);
+ unsigned char g = (unsigned char)(((int)color.g*(int)tint.g)/255);
+ unsigned char b = (unsigned char)(((int)color.b*(int)tint.b)/255);
+ unsigned char a = (unsigned char)(((int)color.a*(int)tint.a)/255);
result.r = r;
result.g = g;