-
-void
-ArdourCanvas::color_to_rgba (Color color, double& r, double& g, double& b, double& a)
-{
- r = ((color >> 24) & 0xff) / 255.0;
- g = ((color >> 16) & 0xff) / 255.0;
- b = ((color >> 8) & 0xff) / 255.0;
- a = ((color >> 0) & 0xff) / 255.0;
-}
-
-ArdourCanvas::Color
-ArdourCanvas::rgba_to_color (double r, double g, double b, double a)
-{
- /* clamp to [0 .. 1] range */
-
- r = min (1.0, max (0.0, r));
- g = min (1.0, max (0.0, g));
- b = min (1.0, max (0.0, b));
- a = min (1.0, max (0.0, a));
-
- /* convert to [0..255] range */
-
- unsigned int rc, gc, bc, ac;
- rc = rint (r * 255.0);
- gc = rint (g * 255.0);
- bc = rint (b * 255.0);
- ac = rint (a * 255.0);
-
- /* build-an-integer */
-
- return (rc << 24) | (gc << 16) | (bc << 8) | ac;
-}
-
-void
-ArdourCanvas::set_source_rgba (Cairo::RefPtr<Cairo::Context> context, Color color)
-{
- context->set_source_rgba (
- ((color >> 24) & 0xff) / 255.0,
- ((color >> 16) & 0xff) / 255.0,
- ((color >> 8) & 0xff) / 255.0,
- ((color >> 0) & 0xff) / 255.0
- );
-}
-