diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2011-08-22 10:14:15 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2011-08-22 10:14:15 +0000 |
commit | 47d41d0203894c6792caf7f71108e8c5a9086776 (patch) | |
tree | bf666736dd75a0429012613145e030936bddd2f5 | |
parent | 3657aa675e47eafcfa1e1186c3f4c51c4e5b6a7e (diff) | |
download | rtmux-47d41d0203894c6792caf7f71108e8c5a9086776.tar.gz rtmux-47d41d0203894c6792caf7f71108e8c5a9086776.tar.bz2 rtmux-47d41d0203894c6792caf7f71108e8c5a9086776.zip |
There is no need to use sqrt()/INFINITY here which simplifies the code
and makes it more portable, from Havard Eidnes.
-rw-r--r-- | colour.c | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -19,7 +19,6 @@ #include <sys/types.h> #include <ctype.h> -#include <math.h> #include <stdlib.h> #include <string.h> @@ -41,7 +40,7 @@ struct colour_rgb { struct colour_rgb *colour_rgb_256; void colour_rgb_generate256(void); -double colour_rgb_distance(struct colour_rgb *, struct colour_rgb *); +u_int colour_rgb_distance(struct colour_rgb *, struct colour_rgb *); int colour_rgb_find(struct colour_rgb *); /* Generate 256 colour RGB table. */ @@ -91,7 +90,7 @@ colour_rgb_generate256(void) } /* Get colour RGB distance. */ -double +u_int colour_rgb_distance(struct colour_rgb *rgb1, struct colour_rgb *rgb2) { int r, g, b; @@ -99,21 +98,20 @@ colour_rgb_distance(struct colour_rgb *rgb1, struct colour_rgb *rgb2) r = rgb1->r - rgb2->r; g = rgb1->g - rgb2->g; b = rgb1->b - rgb2->b; - return (sqrt(r * r + g * g + b * b)); + return (r * r + g * g + b * b); } /* Work out the nearest colour from the 256 colour set. */ int colour_rgb_find(struct colour_rgb *rgb) { - double distance, lowest; - u_int colour, i; + u_int distance, lowest, colour, i; if (colour_rgb_256 == NULL) colour_rgb_generate256(); colour = 16; - lowest = INFINITY; + lowest = UINT_MAX; for (i = 0; i < 240; i++) { distance = colour_rgb_distance(&colour_rgb_256[i], rgb); if (distance < lowest) { |