diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-09-19 16:21:19 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-05 11:13:09 -0500 |
commit | 70e95f951dc58b2b1b2857956391e1cfc2ba27fc (patch) | |
tree | 819d218a233c37ed2fbd5f9d962b23e0718cf0c3 /libs/canvas/fill.cc | |
parent | 4eac2a76da79de7fd72f0a8af51de2b14f23283d (diff) |
add ArdourCanvas::Fill::set_pattern() to allow any filled canvas item to be filled using an arbitrary Cairo Pattern
Diffstat (limited to 'libs/canvas/fill.cc')
-rw-r--r-- | libs/canvas/fill.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libs/canvas/fill.cc b/libs/canvas/fill.cc index 42bcbfff3c..9c93523e51 100644 --- a/libs/canvas/fill.cc +++ b/libs/canvas/fill.cc @@ -72,7 +72,11 @@ Fill::set_fill (bool fill) void Fill::setup_fill_context (Cairo::RefPtr<Cairo::Context> context) const { - set_source_rgba (context, _fill_color); + if (_pattern) { + context->set_source (_pattern); + } else { + set_source_rgba (context, _fill_color); + } } void @@ -96,6 +100,12 @@ Fill::setup_gradient_context (Cairo::RefPtr<Cairo::Context> context, Rect const } void +Fill::set_pattern (Cairo::RefPtr<Cairo::Pattern> p) +{ + _pattern = p; +} + +void Fill::set_gradient (StopList const & stops, bool vertical) { _self.begin_visual_change (); |