-/* this function returns the max diff for a gradient */
-unsigned long gradient_max(unsigned long first_colour,
- unsigned long last_colour)
-{
- int red1, green1, blue1; // first colour
- int red2, green2, blue2; // second colour
- int red3 = 0, green3 = 0, blue3 = 0; // difference
- long redshift, greenshift;
- int max;
-
- if (colour_depth == 0) {
- set_up_gradient();
- }
- redshift = (2 * colour_depth / 3 + colour_depth % 3);
- greenshift = (colour_depth / 3);
-
- red1 = (first_colour & redmask) >> redshift;
- green1 = (first_colour & greenmask) >> greenshift;
- blue1 = first_colour & bluemask;
- red2 = (last_colour & redmask) >> redshift;
- green2 = (last_colour & greenmask) >> greenshift;
- blue2 = last_colour & bluemask;
- red3 = abs(red1 - red2);
- green3 = abs(green1 - green2);
- blue3 = abs(blue1 - blue2);
- max = red3;
-
- if (green3 > max) {
- max = green3;
- }
- if (blue3 > max) {
- max = blue3;
- }
- return max;
-}
-