28 #include <boost/bind.hpp>
34 #include "video/image.h"
35 #include "util/time/timemanager.h"
38 #include "textrenderpool.h"
43 m_poolMaxSize = poolSize;
46 m_collectTimer.setInterval( 1000 * 60 );
51 type_pool::iterator it= m_pool.begin();
52 for(;it != m_pool.end(); ++it) {
60 type_pool::iterator it= m_pool.begin();
61 for(;it != m_pool.end(); ++it) {
71 if( it->color.r != c.r || it->color.g != c.g || it->color.b != c.b )
74 if( it->text != text )
78 it->timestamp = TimeManager::instance()->getTime();
79 m_pool.push_front( *it );
82 return m_pool.front().image;
96 centry.timestamp = TimeManager::instance()->getTime();
97 m_pool.push_front( centry );
101 if( m_poolSize >= m_poolMaxSize/10 )
102 m_collectTimer.start();
105 if( m_poolSize < m_poolMaxSize ) {
109 delete m_pool.back().image;
116 type_pool::iterator it = m_pool.begin();
117 uint32_t now = TimeManager::instance()->getTime();
118 while (it != m_pool.end()) {
119 if( (now - it->timestamp) > 1000*60 ) {
121 it = m_pool.erase(it);
130 if( m_poolSize == 0 )
131 m_collectTimer.stop();
135 type_pool::iterator it = m_pool.begin();
136 while (it != m_pool.end()) {
137 it->image->invalidate();