Subversion Repositories tpanel

Rev

Rev 97 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 97 Rev 165
Line 34... Line 34...
34
    DECL_TRACER("TImgCache::~TImgCache()");
34
    DECL_TRACER("TImgCache::~TImgCache()");
35
 
35
 
36
    mImgCache.clear();
36
    mImgCache.clear();
37
}
37
}
38
 
38
 
39
bool TImgCache::addImage(const string& name, SkBitmap& bm)
39
bool TImgCache::addImage(const string& name, SkBitmap& bm, _IMGCACHE_BMTYPE bmType)
40
{
40
{
41
    DECL_TRACER("TImgCache::addImage(const string& name, SkBitmap& bm)");
41
    DECL_TRACER("TImgCache::addImage(const string& name, SkBitmap& bm, _IMGCACHE_BMTYPE bmType)");
42
 
42
 
43
    _imgCache.lock();
43
    _imgCache.lock();
44
    _IMGCACHE ic;
44
    _IMGCACHE ic;
45
 
45
 
46
    ic.name = name;
46
    ic.name = name;
-
 
47
    ic.bmType = bmType;
47
    ic.bitmap = bm;
48
    ic.bitmap = bm;
48
 
49
 
49
    if (mImgCache.size() == 0)
50
    if (mImgCache.size() == 0)
50
    {
51
    {
51
        mImgCache.push_back(ic);
52
        mImgCache.push_back(ic);
Line 71... Line 72...
71
    MSG_DEBUG("Bitmap \"" << name << "\" was added.");
72
    MSG_DEBUG("Bitmap \"" << name << "\" was added.");
72
    _imgCache.unlock();
73
    _imgCache.unlock();
73
    return true;
74
    return true;
74
}
75
}
75
 
76
 
76
bool TImgCache::getBitmap(const string& name, SkBitmap *bm)
77
bool TImgCache::getBitmap(const string& name, SkBitmap *bm, _IMGCACHE_BMTYPE bmType)
77
{
78
{
78
    DECL_TRACER("TImgCache::getBitmap(const string& name)");
79
    DECL_TRACER("TImgCache::getBitmap(const string& name, _IMGCACHE_BMTYPE bmType)");
79
 
80
 
80
    if (mImgCache.size() == 0 || !bm)
81
    if (mImgCache.size() == 0 || !bm)
81
        return false;
82
        return false;
82
 
83
 
83
    _imgCache.lock();
-
 
84
    vector<_IMGCACHE>::iterator iter;
84
    vector<_IMGCACHE>::iterator iter;
85
 
85
 
86
    for (iter = mImgCache.begin(); iter != mImgCache.end(); ++iter)
86
    for (iter = mImgCache.begin(); iter != mImgCache.end(); ++iter)
87
    {
87
    {
88
        if (iter->name == name)
88
        if (iter->name == name && iter->bmType == bmType)
89
        {
89
        {
90
            *bm = iter->bitmap;
90
            *bm = iter->bitmap;
91
            MSG_DEBUG("Bitmap \"" << iter->name << "\" was found.");
91
            MSG_DEBUG("Bitmap \"" << iter->name << "\" was found.");
92
            _imgCache.unlock();
-
 
93
            return true;
92
            return true;
94
        }
93
        }
95
    }
94
    }
96
 
95
 
97
    _imgCache.unlock();
-
 
98
    return false;
96
    return false;
99
}
97
}
100
 
98
 
101
bool TImgCache::delBitmap(const string& name)
99
bool TImgCache::delBitmap(const string& name, _IMGCACHE_BMTYPE bmType)
102
{
100
{
103
    DECL_TRACER("TImgCache::delBitmap(const string& name)");
101
    DECL_TRACER("TImgCache::delBitmap(const string& name, _IMGCACHE_BMTYPE bmType)");
104
 
102
 
105
    if (name.empty() || mImgCache.size() == 0)
103
    if (name.empty() || mImgCache.size() == 0)
106
        return false;
104
        return false;
107
 
105
 
108
    _imgCache.lock();
106
    _imgCache.lock();
109
    vector<_IMGCACHE>::iterator iter;
107
    vector<_IMGCACHE>::iterator iter;
110
 
108
 
111
    for (iter = mImgCache.begin(); iter != mImgCache.end(); ++iter)
109
    for (iter = mImgCache.begin(); iter != mImgCache.end(); ++iter)
112
    {
110
    {
113
        if (iter->name == name)
111
        if (iter->name == name && iter->bmType == bmType)
114
        {
112
        {
115
            MSG_DEBUG("Bitmap \"" << iter->name << "\" will be erased.");
113
            MSG_DEBUG("Bitmap \"" << iter->name << "\" will be erased.");
116
            mImgCache.erase(iter);
114
            mImgCache.erase(iter);
117
            _imgCache.unlock();
115
            _imgCache.unlock();
118
            return true;
116
            return true;
Line 120... Line 118...
120
    }
118
    }
121
 
119
 
122
    _imgCache.unlock();
120
    _imgCache.unlock();
123
    return false;
121
    return false;
124
}
122
}
-
 
123
 
-
 
124
bool TImgCache::existBitmap(const string& name, _IMGCACHE_BMTYPE bmType)
-
 
125
{
-
 
126
    DECL_TRACER("TImgCache::existBitmap(const string& name, _IMGCACHE_BMTYPE bmType)");
-
 
127
 
-
 
128
    if (mImgCache.size() == 0)
-
 
129
        return false;
-
 
130
 
-
 
131
    vector<_IMGCACHE>::iterator iter;
-
 
132
 
-
 
133
    for (iter = mImgCache.begin(); iter != mImgCache.end(); ++iter)
-
 
134
    {
-
 
135
        if (iter->name == name && iter->bmType == bmType)
-
 
136
            return true;
-
 
137
    }
-
 
138
 
-
 
139
    return false;
-
 
140
}