From a494211e737eb47ffb135400f757a44fae16016f Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 19 Dec 2014 09:53:26 -0500 Subject: [PATCH] add ArdourCanvas::change_alpha() Time to move away from rgba macros --- libs/canvas/canvas/colors.h | 2 ++ libs/canvas/colors.cc | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/libs/canvas/canvas/colors.h b/libs/canvas/canvas/colors.h index 526eb991e2..87901b4586 100644 --- a/libs/canvas/canvas/colors.h +++ b/libs/canvas/canvas/colors.h @@ -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); diff --git a/libs/canvas/colors.cc b/libs/canvas/colors.cc index b96c609a85..d83c471c2f 100644 --- a/libs/canvas/colors.cc +++ b/libs/canvas/colors.cc @@ -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) {