summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-17 18:17:51 +0200
committerRobin Gareus <robin@gareus.org>2016-05-17 18:17:51 +0200
commit742e113a7b5b4dba70a12c052af19ef859d7bcb5 (patch)
tree56fad7f5a862f8f6bd70420b51f1c933071fbc59 /libs/canvas
parent8fc5b5c06040ad8140ba0122f064e839fd2c611c (diff)
backport canvas color functions from Mixbus
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/canvas/colors.h1
-rw-r--r--libs/canvas/colors.cc7
2 files changed, 8 insertions, 0 deletions
diff --git a/libs/canvas/canvas/colors.h b/libs/canvas/canvas/colors.h
index 2a3cbb2060..b2f6c1e2ff 100644
--- a/libs/canvas/canvas/colors.h
+++ b/libs/canvas/canvas/colors.h
@@ -35,6 +35,7 @@ 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 Color color_at_alpha (Color, double a);
extern LIBCANVAS_API void color_to_hsv (Color color, double& h, double& s, double& v);
extern LIBCANVAS_API void color_to_rgba (Color, double& r, double& g, double& b, double& a);
extern LIBCANVAS_API Color rgba_to_color (double r, double g, double b, double a);
diff --git a/libs/canvas/colors.cc b/libs/canvas/colors.cc
index 9b30c1230a..dd928ae1a2 100644
--- a/libs/canvas/colors.cc
+++ b/libs/canvas/colors.cc
@@ -658,3 +658,10 @@ SVAModifier::operator () (HSV& hsv) const
return r;
}
+ArdourCanvas::Color
+ArdourCanvas::color_at_alpha (ArdourCanvas::Color c, double a)
+{
+ double r, g, b, unused;
+ color_to_rgba (c, r, g, b, unused);
+ return rgba_to_color( r,g,b, a );
+}