DSPlatformMaker/source/Map.h
2020-12-19 09:39:41 +02:00

31 lines
765 B
C

// returns an integer between min and max using range from 0-255
uint16_t map(uint16_t min, uint16_t max, uint8_t h)
{
uint16_t i = max - min;
if(h == 0x00) return min;
else if(h == 255) return max;
else
{
uint16_t m = min + (h * i / 256);
return m;
}
}
uint16_t color_lerp(uint16_t min, uint16_t max, uint16_t i)
{
uint8_t mred = GetRedComponent(min);
uint8_t mgreen = GetGreenComponent(min);
uint8_t mblue = GetBlueComponent(min);
uint8_t m2red = GetRedComponent(max);
uint8_t m2green = GetGreenComponent(max);
uint8_t m2blue = GetBlueComponent(max);
uint8_t rred = map(mred, m2red, i);
uint8_t rgreen = map(mgreen, m2green, i);
uint8_t rblue = map(mblue, m2blue, i);
return Unite(rred, rgreen, rblue);
}