diff options
author | Robin Gareus <robin@gareus.org> | 2014-09-11 02:40:18 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-09-11 19:30:33 +0200 |
commit | 01974b576995b8a67158fb3d416a1ca8ca224cfd (patch) | |
tree | 0e714650de3065d17ae62077399566efdbc64041 /libs | |
parent | 114792777d7e8433d398bba395c75c27494b6075 (diff) |
API flush static cairo pattern cache
(should probably be cleaned regularly
e.g. meterbridge resize)
Diffstat (limited to 'libs')
-rw-r--r-- | libs/gtkmm2ext/fastmeter.cc | 18 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/fastmeter.h | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/fastmeter.cc b/libs/gtkmm2ext/fastmeter.cc index df3f09735e..15f38db20a 100644 --- a/libs/gtkmm2ext/fastmeter.cc +++ b/libs/gtkmm2ext/fastmeter.cc @@ -133,6 +133,24 @@ FastMeter::~FastMeter () { } +void +FastMeter::flush_pattern_cache () { + Pattern10Map::iterator i1; + PatternBgMap::iterator ib; + for (ib = hb_pattern_cache.begin(); ib != hb_pattern_cache.end(); ++ib) { + hb_pattern_cache.erase(ib); + } + for (i1 = hm_pattern_cache.begin(); i1 != hm_pattern_cache.end(); ++i1) { + hm_pattern_cache.erase(i1); + } + for (ib = vb_pattern_cache.begin(); ib != vb_pattern_cache.end(); ++ib) { + vb_pattern_cache.erase(ib); + } + for (i1 = vm_pattern_cache.begin(); i1 != vm_pattern_cache.end(); ++i1) { + vm_pattern_cache.erase(i1); + } +} + Cairo::RefPtr<Cairo::Pattern> FastMeter::generate_meter_pattern ( int width, int height, int *clr, float *stp, int styleflags, bool horiz) diff --git a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h index 650908f6a4..dbb3296c46 100644 --- a/libs/gtkmm2ext/gtkmm2ext/fastmeter.h +++ b/libs/gtkmm2ext/gtkmm2ext/fastmeter.h @@ -52,6 +52,7 @@ class LIBGTKMM2EXT_API FastMeter : public CairoWidget { int styleflags = 3 ); virtual ~FastMeter (); + static void flush_pattern_cache(); void set (float level, float peak = -1); void clear (); |