#include // sin() #include "bg-style.h" #define M_2_PI (2.0 * 3.1415926) #define BG_STYLE_GET_CHANNEL(c, time) ((c).base + (((c).period) ? ( \ (c).scale * sin(((c).phase + (time)) * M_2_PI / (1.0 * (c).period)) \ ) : 0)) SDL_Color bg_style_get_color( const bg_style_t * const style, const Uint32 ticks ) { return (SDL_Color) { .r = BG_STYLE_GET_CHANNEL(style->r, ticks), .g = BG_STYLE_GET_CHANNEL(style->g, ticks), .b = BG_STYLE_GET_CHANNEL(style->b, ticks), .a = BG_STYLE_GET_CHANNEL(style->a, ticks), }; }