add ArdourCanvas::change_alpha()
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 19 Dec 2014 14:53:26 +0000 (09:53 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 19 Dec 2014 14:53:26 +0000 (09:53 -0500)
Time to move away from rgba macros

libs/canvas/canvas/colors.h
libs/canvas/colors.cc

index 526eb991e2c76ca4d000328ea37cd479738aa5c4..87901b45861f483828d3ad3e7706a72c153adbe8 100644 (file)
@@ -31,6 +31,8 @@ namespace ArdourCanvas
 struct LIBCANVAS_API HSV;
 struct LIBCANVAS_API HSVA;
 
+extern LIBCANVAS_API Color change_alpha (Color, double alpha);
+
 extern LIBCANVAS_API Color hsva_to_color (double h, double s, double v, double a = 1.0);
 extern LIBCANVAS_API void  color_to_hsva (Color color, double& h, double& s, double& v, double& a);
 extern LIBCANVAS_API void  color_to_hsv (Color color, double& h, double& s, double& v);
index b96c609a85c64579f4c57ba598e5ecae8c9cbc08..d83c471c2face7481c16210db55075f63d75a2f1 100644 (file)
@@ -35,6 +35,12 @@ using namespace ArdourCanvas;
 using std::max;
 using std::min;
 
+ArdourCanvas::Color
+change_alpha (Color c, double a)
+{
+       return ((c & ~0xff) | (lrintf (a*255.0) & 0xff));
+}
+
 void
 ArdourCanvas::color_to_hsv (Color color, double& h, double& s, double& v)
 {