void
  
  AG_ColorRGB_8(AG_Color
    *c, Uint8 r,
    Uint8 g,
    Uint8 b);
  
  void
  
  AG_ColorRGBA_8(AG_Color
    *c, Uint8 r,
    Uint8 g,
    Uint8 b,
    Uint8 a);
  
  void
  
  AG_ColorRGB_16(AG_Color
    *c, Uint16 r,
    Uint16 g,
    Uint16 b);
  
  void
  
  AG_ColorRGBA_16(AG_Color
    *c, Uint16 r,
    Uint16 g,
    Uint16 b,
    Uint16 a);
  
  void
  
  AG_HSV2Color(float
    hue, float sat,
    float val,
    AG_Color *c);
  
  void
  
  AG_Color2HSV(AG_Color
    *c, float *hue,
    float *sat,
    float *val);
  
  void
  
  AG_ColorHex16(AG_Color
    *c, Uint16
  hex);
  
  void
  
  AG_ColorHex32(AG_Color
    *c, Uint32
  hex);
  
  void
  
  AG_ColorHex64(AG_Color
    *c, Uint64
  hex);
  
  void
  
  AG_ColorFromString(AG_Color
    *c, const char
    *spec, const AG_Color
    *parentColor);
  
  void
  
  AG_ColorNone(AG_Color
    *c);
  
  void
  
  AG_ColorBlack(AG_Color
    *c);
  
  void
  
  AG_ColorWhite(AG_Color
    *c);
  
  void
  
  AG_ColorLighten(AG_Color
    *c, int shade);
  
  void
  
  AG_ColorDarken(AG_Color
    *c, int shade);
  
  void
  
  AG_ColorInterpolate(AG_Color
    *cx, const AG_Color
    *c1, const AG_Color
    *c2);
  
  int
  
  AG_ColorCompare(const
    AG_Color *a, const
    AG_Color *b);
AG_ColorRGB_8()
    and AG_ColorRGB_16() return an
    AG_Color from 8- or 16-bit red, green and blue
    components (with alpha set to fully opaque).
AG_ColorRGBA_8()
    and AG_ColorRGBA_16() return an
    AG_Color from 8- or 16-bit RGB and alpha
  components.
AG_HSV2Color()
    maps a color in HSV space to the closest approximation in RGB space, and
    copies the A component as-is. The inverse operation is performed by
    AG_Color2HSV(). Note: H and V become increasingly
    lossy as S->0.
The
    AG_ColorHex16(),
    AG_ColorHex32() and
    AG_ColorHex64() routines convert a color packed into
    0xRGBA
    (4-bit components),
    0xRRGGBBAA
    (8-bit components), or
    0xRRRRGGGGBBBBAAAA
    (16-bit components) into an AG_Color.
AG_ColorFromString()
    converts a text-based color representation to an
    AG_Color. The following formats are allowed:
"#RGB[A]"
"#RRGGBB[AA]"
"#RRRRGGGGBBBB[AAAA]"
"r,g,b[,a]"
"rgb(r,g,b[,a])"
"rgb16(r,g,b[,a])"
"hsv(h,s,v[,a])"
"AliceBlue"
 
Color components may be separated by `/', ':' or ','.
A component terminating with a `%' character is interpreted as a
    ratio (in %) of the corresponding component of pColor
    (or White if pColor is NULL).
AG_ColorNone()
    initializes the color to fully transparent black (0,0,0,0).
    AG_ColorBlack() and
    AG_ColorWhite() initialize the respective fully
    opaque color.
AG_ColorLighten()
    and AG_ColorDarken increase and decrease the overall
    value of c by some small increment multiplied by
    shade. A shade argument of 0
    leaves the color value unchanged.
AG_ColorInterpolate()
    traces an imaginary line in RGB color space between c1
    and c2 and returns into cx the
    color closest to the point described by the fraction
    num over denom.
AG_ColorCompare()
    returns non-zero if the two colors differ.