Skip to content

Commit f2344cd

Browse files
authored
review color tint functions (#4015)
1 parent c04629f commit f2344cd

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

src/rtextures.c

+8-18
Original file line numberDiff line numberDiff line change
@@ -2667,17 +2667,12 @@ void ImageColorTint(Image *image, Color color)
26672667

26682668
Color *pixels = LoadImageColors(*image);
26692669

2670-
float cR = (float)color.r/255;
2671-
float cG = (float)color.g/255;
2672-
float cB = (float)color.b/255;
2673-
float cA = (float)color.a/255;
2674-
26752670
for (int i = 0; i < image->width*image->height; i++)
26762671
{
2677-
unsigned char r = (unsigned char)(((float)pixels[i].r/255*cR)*255.0f);
2678-
unsigned char g = (unsigned char)(((float)pixels[i].g/255*cG)*255.0f);
2679-
unsigned char b = (unsigned char)(((float)pixels[i].b/255*cB)*255.0f);
2680-
unsigned char a = (unsigned char)(((float)pixels[i].a/255*cA)*255.0f);
2672+
unsigned char r = (unsigned char)(((int)pixels[i].r*(int)color.r)/255);
2673+
unsigned char g = (unsigned char)(((int)pixels[i].g*(int)color.g)/255);
2674+
unsigned char b = (unsigned char)(((int)pixels[i].b*(int)color.b)/255);
2675+
unsigned char a = (unsigned char)(((int)pixels[i].a*(int)color.a)/255);
26812676

26822677
pixels[i].r = r;
26832678
pixels[i].g = g;
@@ -4639,15 +4634,10 @@ Color ColorTint(Color color, Color tint)
46394634
{
46404635
Color result = color;
46414636

4642-
float cR = (float)tint.r/255;
4643-
float cG = (float)tint.g/255;
4644-
float cB = (float)tint.b/255;
4645-
float cA = (float)tint.a/255;
4646-
4647-
unsigned char r = (unsigned char)(((float)color.r/255*cR)*255.0f);
4648-
unsigned char g = (unsigned char)(((float)color.g/255*cG)*255.0f);
4649-
unsigned char b = (unsigned char)(((float)color.b/255*cB)*255.0f);
4650-
unsigned char a = (unsigned char)(((float)color.a/255*cA)*255.0f);
4637+
unsigned char r = (unsigned char)(((int)color.r*(int)tint.r)/255);
4638+
unsigned char g = (unsigned char)(((int)color.g*(int)tint.g)/255);
4639+
unsigned char b = (unsigned char)(((int)color.b*(int)tint.b)/255);
4640+
unsigned char a = (unsigned char)(((int)color.a*(int)tint.a)/255);
46514641

46524642
result.r = r;
46534643
result.g = g;

0 commit comments

Comments
 (0)