cache shaded meter-background regardless of color
previously, shaded patterns were assumed to have different colors as well.
This commit is contained in:
parent
cd35040535
commit
069fd15c79
|
@ -357,7 +357,7 @@ FastMeter::request_vertical_background(
|
|||
height = min(height, max_pattern_metric_size);
|
||||
height += 2;
|
||||
|
||||
const PatternBgMapKey key (width, height, bgc[0], bgc[1]);
|
||||
const PatternBgMapKey key (width, height, bgc[0], bgc[1], shade);
|
||||
PatternBgMap::iterator i;
|
||||
if ((i = vb_pattern_cache.find (key)) != vb_pattern_cache.end()) {
|
||||
return i->second;
|
||||
|
@ -405,7 +405,7 @@ FastMeter::request_horizontal_background(
|
|||
width = min(width, max_pattern_metric_size);
|
||||
width += 2;
|
||||
|
||||
const PatternBgMapKey key (width, height, bgc[0], bgc[1]);
|
||||
const PatternBgMapKey key (width, height, bgc[0], bgc[1], shade);
|
||||
PatternBgMap::iterator i;
|
||||
if ((i = hb_pattern_cache.find (key)) != hb_pattern_cache.end()) {
|
||||
return i->second;
|
||||
|
|
|
@ -147,15 +147,17 @@ private:
|
|||
typedef std::map<Pattern10MapKey, Cairo::RefPtr<Cairo::Pattern> > Pattern10Map;
|
||||
|
||||
struct PatternBgMapKey {
|
||||
PatternBgMapKey (int w, int h, int c0, int c1)
|
||||
PatternBgMapKey (int w, int h, int c0, int c1, bool shade)
|
||||
: dim(w, h)
|
||||
, cols(c0, c1)
|
||||
, sh(shade)
|
||||
{}
|
||||
inline bool operator<(const PatternBgMapKey& rhs) const {
|
||||
return (dim < rhs.dim) || (dim == rhs.dim && cols < rhs.cols);
|
||||
return (dim < rhs.dim) || (dim == rhs.dim && cols < rhs.cols) || (dim == rhs.dim && cols == rhs.cols && (sh && !rhs.sh));
|
||||
}
|
||||
boost::tuple<int, int> dim;
|
||||
boost::tuple<int, int> cols;
|
||||
bool sh;
|
||||
};
|
||||
typedef std::map<PatternBgMapKey, Cairo::RefPtr<Cairo::Pattern> > PatternBgMap;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user