summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/fastmeter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2014-09-11 02:40:18 +0200
committerRobin Gareus <robin@gareus.org>2014-09-11 19:30:33 +0200
commit01974b576995b8a67158fb3d416a1ca8ca224cfd (patch)
tree0e714650de3065d17ae62077399566efdbc64041 /libs/gtkmm2ext/fastmeter.cc
parent114792777d7e8433d398bba395c75c27494b6075 (diff)
API flush static cairo pattern cache
(should probably be cleaned regularly e.g. meterbridge resize)
Diffstat (limited to 'libs/gtkmm2ext/fastmeter.cc')
-rw-r--r--libs/gtkmm2ext/fastmeter.cc18
1 files changed, 18 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)